MyBatis精简使用与配置
使用MyBatis首先需要熟悉JDBC的相关知识:
对jdbc问题总结
数据库连接 :
在用的时候打开数据库连接,在不用的时候关闭,频繁的开关和关闭,是一种资源的浪费
解决办法:利用连接池的方式连接数据库
Sql语句写在代码中:
将sql写死在java代码中,不利于维护。一旦sql变更,需要重新编译java代码。
解决办法:将sql写在配置文件中,让程序读取配置文件
结果集遍历 :
将列名写死在代码中,而且,需要人工的去封装称实体层对象,开发很繁琐。
解决办法: 通过某中机制,将从数据库查询出来的结果,自动的封装到实体类的对象中去
Mybatis
原理:
1.1.1 增 删 改 查
环境搭建:
创建项目,加入jar包:
Mybatis-config.xml:
XXXMapper.xml:
实体层的属性要和表中的列名一一对应
测试类:
1.1 Mybatis开发dao两种方式
1.1.1 原生dao开发方法(接口、实现类)
程序员需要自己去定义接口和接口实现类,在创建接口对象的时候,用的是自定义的接口实现类
UserDao userDao = new UserDaoImpl()
1.1.2 Mybatis的mapper接口(代理开发方法)
程序员只需要自己去定义接口,但是接口定义要尊徐一些规则,在创建接口对象的时候,mybatis框架会自动去实现接口,并把接口的对象创建出来
定义接口要遵循的规则:
1. XXXMapper.xml 的namespace 要设置成接口全路径
2.XXXMapper.xml中标签id 要和接口的方法名保持一致
3.XXXMapper.xml中标签 parameterType 就是接口方法的参数类型
4.XXXMapper.xml中标签 resultType 就是接口 方法返回值
测试:
添加测试类的方法:
在类上右击----new----other----输入junit----选择 junit test case ---next—next(选择要用junit测试的方法)---finish
1.1 Mybatis的配置文件mybatis-config.xml
Properties 属性
Settings 全局配置参数
用的的时候就去设置,不用就不用设置。一般情况都是使用默认配置
typeAliases 类型别名
给单独的一个类其别名
给某一个包下所有类起别名,别名就是类名
typeHandlers 类型处理器 :把java中的数据类型转换成jdbc的数据类型,也可以把jdbc数据类型转换为java的数据类型
mappers 映射器
通过resource 属性加载XXXmapper.xml文件
通过接口名加载XXXmapper.xml文件。规则要记住
同时加载多个mapper.xml文件
1.1 Mybatis核心
1.1.1 输入映射
通过parameterType进行映射的,他的类型可以是基本数据类型,自定义的类,包装类
自定义的包装类:
Mapper的配置
接口方法定义
测试
1.1.1 输出映射
resultType : 当sql语句中的列名和实体类中的属性名一致的时候,查询结果可以自动封装到实体类的对象中,一旦给列起别名或者只查询某几列,实体类的属性就有为null的时候。
resultMap : 当查询sql语句和实体类的属性名不一样的时候。
Mapper:
接口
测试
1.1 Mybatic动态sql
If判断
Sql片段
foreach
接口定义
测试