MyBatis零基础回顾-01
1、Mybatis概述
mybatis是一个操作数据库的持久层框架,它是一个半自动ORM框架,操作数据库的语句,需要程序员来自己抒写。
2、入门案例-【这种方式不怎么常用,入门就这样实现了】
创建项目导入jar包
创建一个实体类
创建核心配置文件,官方推荐名字:sqlMapConfig.xml
log4j.xml是一个日志文件的配置,网上有
创建实体类的映射文件,推荐命名规则:类名+Mapper.xml
核心配置文件详情
映射文件详情
代码测试
测试之前你的数据要有一张存在的表,不然你映射文件的sql语句没办法写,字段名与类属性名对应,后面会说不对应的情况怎么处理。
3、入门案例-面对接口实现
使用接口实现,要注意一下几点:
映射文件的命名必须是接口的全路径名,这样映射文件才能和接口绑定。
映射文件里面的select查询ID值要与接口中方法的命名一样。
创建接口
映射文件配置
代码测试
4、核心配置文件引入properties文件
5、Mybatis中常用配置项
6、别名管理
批量别名
7、environment属性配置Mybatis不同的运行环境
8、设置不同数据库厂商
9、Mappers标签详解-加载映射文件
10、最基础的增删改
增
改
删
11、获取增加后的主键值
mysql下这么写
Oralce获取主键值
12、Mybatis方法传参详解
第一:如果方法传递的是一个参数,#{参数名} 参数名可以随便起
第二:如果方法传递多个参数,那么mybatis会将参数封装成一个map,
key是:param1--paramN value:是我们传入的值
取的话可以#{param1} 也可以取#{0}#{1}取索引位置
第三:使用@Param()标签 为参数设置一个名称,然后#{设置的名称}
第四:传递参数为Map,那么#{key}就能取出key中的值
12、#{}与${}的区别
#{}:采用占位符的形式,将参数设置到sql语句中的,可以防止sql注入
${}:取出的值直接拼接到sql语句的
${}一般使用在原生sql不支持占位符的方式时使用,比如动态设置表名,或者排序,
select * from ${参数表名} ordey by ${参数字段名} ${参数排序方式}
13、查询返回List、Map集合
list
map
返回一条记录的 map类型
返回多条记录的 map类型
14、自定义返回集---resultMap
15、resultMap关联查询-one
16、resultMap关联查询-two
17、resultMap关联查询-Three
分步查询可是使用延迟加载
lazyLoadingEnabled 开始延迟加载
aggressiveLazyLoading 关闭直接加载
延迟加载,当我需要第二个select查询的数据的时候,才会去发sql查询
18、关联查询 list-one