属性 |
描述 |
id |
命名空间中唯一的标识符,可以被用来引用这条语句 |
parameterType |
传入语句的参数类的完全限定名或别名 |
statementType |
可选值:STATEMENT、PREPARED或CALLABLE |
useGeneratedKeys |
是否使用生成的键 |
resultType |
返回类型的完全限定名或别名 |
resultMap |
命名引用外部的resultMap |
flushCache |
默认值为true,缓存清空 |
useCache |
默认值为true,导致本条语句结果被缓存 |
增加(Create)
配置map文件
测试类
更新(Update)
配置map文件
测试类
使用注解进行删除(Delete)
建立一个接口类InterfaceUser.java
在基本配置文件MyBatisConfig.xml中配置
测试类
parameterType封装:HashMap
配置map文件
测试类
parameterType封装:对象
配置map文件
测试类
返回多行记录时MyBatis自动封装成List
map配置文件
测试类
resultMap解决复杂查询时的映射问题(如一个表含有另一个表的ID索引)
配置map文件
测试类
事务处理
两种控制方式:1.JDBC、2.MANAGED
在基本配置文件中配置事务处理
MyBatis JDBC事务管理:1.添加作者前要添加用户、2.自动id返回
1.新建作者表
2.新建作者类Author.java
3.配置事务处理
4.新建author.xml
5.测试类
联合查询 resultMap
属性 |
描述 |
id |
一个ID结果;标记结果为ID可以帮助提高整体效能 |
result |
注入到字段或JavaBean属性的普通结果 |
association |
复杂类型的关联 |
collection |
复杂类型的集合 |
constructor |
类在实例化时,用来注入结果到构造方法 |
discriminator |
使用结果值来决定使用哪个结果映射 |
查询所有作者的登录名
配置author.xml
测试类
构造查询
配置map文件Author.xml
添加构造函数User.java
测试类
子查询
在user.xml建立子查询
配置map文件author.xml
测试类
子查询与联合查询区别:
子查询:N+1次查询,占用资源可大可小
联合查询:一次查询,占用资源大
子查询较适合 懒加载
懒加载例子:第二条语句当用到的时候才执行
开启懒加载(需在设置别名之前)
测试类
在控制台可以看到,第二条语句当用到的时候才执行
集合查询
新建visit表,用来记录用户登录
新建visit类
User类添加visitList属性
配置user.xml
测试类
鉴别器 discriminator
动态SQL
判断读者金币大于某值的会员号,若无金币则为普通会员 if
新建读者表
新建读者类
在配置文件建立select
建立测试类
判断用户名,如果不存在就判断id,最后判断密码不为空 choose
建立查询
测试类
判断用户名,如果不存在就判断id,最后判断密码不为空 where标记=智能条件
user.xml
测试类
set标记=智能赋值
user.xml
测试类
trim标记=格式化标记
属性 |
描述 |
prefix |
前缀增加 |
suffix |
后缀增加 |
prefixOverrides |
自动判断前置 |
suffixOverrides |
自动判断后置 |
user.xml
测试类
foreach标记
属性 |
描述 |
collection |
循环集合或指定类型 |
item |
每一次迭代结果 |
open |
开始符号,可选 |
separator |
元素之间的分隔符,可选 |
close |
关闭符号,可选 |
index |
list和数组的序列可选 |
从指定id集合中查询出会员 foreach
user.xml
测试类
循环赋值
使用集合一次添加多个用户
User.xml
测试类
代码下载:百度云盘 密码:sxbm
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!