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、

posted on 2022-07-05 17:22  ChanXM  阅读(29)  评论(0)    收藏  举报

导航