Javaweb学习笔记第八弹
继续MyBatis学习
SQL语句警告提示问题
产生原因:IDEA和数据库没有建立连接,不识别表的信息
解决方式:在IDEA中配置MySQL数据库连接
在IDEA的Maven项目中,如果想要直接通过IDEA进行MySQL数据库的连接,可以点击右侧的DataBase,
选择MySQL数据库,
输入你想要连接的数据库的主机名称、使用者、密码和数据库名称,
并可以通过下方的Test进行测试,随即连接成功!
这可以被看作一个Navicat的翻版,操作方法与Navicat相同,快去试一试吧!
Mapper代理开发
对于上一篇的Javaweb学习笔记的相关改进:在执行SQL语句那里,使用时需要调用资源文件中的某一个名称空间,需要依赖于字符串名称,较为不方便;
遂要将其改正,可以利用上述题目Mapper代理开发(接口)进行修正,步骤如下:
1、定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下;
注意:在操作该步骤时,记得不要直接将SQL映射文件拖动到接口的同目录下;
需要在资源文件中重新创建一个与接口目录同名的Directory文件,
注意到如果接口目录的名称中含有.,那么,在实际上,会是一个个文件夹的层层叠加;而且在给资源文件中的Directory文件夹取名时,其中的.不会自动转换成文件夹的层层目录,所以,需要将其中的.换成/进行取名;
这样,就完成了第一个步骤!
2、设置SQL映射文件的namespace属性为Mapper接口全限定名;(先假设设置Mapper接口名为:userMapper)
记得对MyBatis核心配置文件中有关SQL映射文件的相对路径进行更改
接着,就来到了前面提到过的更改执行sql文件的相关代码内容:
获取接口的代理对象:(???????这里不是很清楚)
userMapper userMapper=sqlSession.getMapper(userMapper.class);
List
3、在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
4、编码:
1)通过SqlSession 的getMapper方法获取Mapper接口的代理对象
2)调用对应方法完成sql的执行
Mapper的核心配置文件(相关内容讲解)
environments
其中可以放置多个environment数据信息,用于连接多个数据库
通过default属性切换不同的environment
dataSource:数据库连接池
由于在SQL映射文件中的resultType需要定义成较为麻烦名称
可以利用typeAliases去定义一个较为简单的类型别名(记得放在environments前)
最后的使用结果是不区分大小写,直接定义为类型别名即可
配置各个标签时,需要遵守前后顺序