mybatis
1、IDEA添加try/catch的快捷键:alt+ctral + t
2、数据库: 实体类 ---- 接口 ---- 接口实现类
3、maven资源过滤问题:Maven由于他的约定大于配置,可能遇到我们写的配置文件,无法被导出或生效的问题,解决方案

3、mybatis程序
(1)工具类 构建sqlsessionfactory
(2)配置文件 连接数据库,
(3)数据库的实体类:pojo --- User
(4)接口:dao
(5)mappper文件:dao,mapper文件中的namespace用于绑定接口
4、namespace的包名要和接口的包名一致
5、select查询语句
(1)id:就是对应namespace中的方法名
(2)resultType:sql语句执行的返回值
6、注意增删改需要提交事务: sqlSession.commit()
7、万能map:假设我们的实体类或数据库中的表,字段或参数过多,应该适当使用Map
map传递参数,直接在sql中取出key即可
对象传递参数,直接在sql中取对象的属性即可
只有一个基本类型参数的情况下,可以直接在sql中取出
8、模糊查询:传递通配符 % %
9、mybatis配置文件
(1)mybatis默认事务管理器是JDBC,连接池:POOLED
(2)在Xml中所有的标签都可以规定其顺序:properties---setting----typeAliases----typeHandlers----->>>mapper
(3)properties 可以直接引入外部文件
(4)类型别名:为java类型设置一个短的名字:
① 为每个包设置别名
② 设置包,扫描实体类的包,默认别名就为这个类的类名,首字母小写,实体类如有注解,别名即为注解名
10、mapper文件
(1)接口和他的mapper配置文件必须同名
(2)接口和他的mapper配置文件必须在同个包下
11、reslutMap结果集映射:数据库中的字段与实体类中的字段不一致时,需要进行映射
12、limit分页语法:
select * from user limit startIndex,pageSize;
13、使用Mybatis实现分页
14、map是一种映射,map<typename1,typename2>mp
使用map要确定映射前类型(键key)和映射后类型(值 value)
15、一级缓存失效(一级缓存就是一个map):
(1)查询不同的数据
(2)增删改可能会改变原来数据,所以会清理缓存
(3)查询不同Mapper
(4)手动清除缓存
16、Mybatis的二级缓存:
(1)开启二级缓存,同个mapper下生效
(2)所有数据会先到一级缓存
(3)当会话提交或关闭才会提交到二级缓存
需要将实体类序列化,当一级缓存的sqlsesssion关闭后,一级缓存的结果会保存到mapper文件中
17、mybatis缓存顺序:先看二级缓存有没有,没有再看一级缓存有没有,没有再查数据库

17、
浙公网安备 33010602011771号