mybatis单独拿一章出来讲解,足见重要性,使用比较简单,大概过下即可。
-
Mybatis
-
使用了Apache的lib包
-
可以在log4j里面配置日志输出级别
-
工作流程:读取配置文件,生成sqlsessionfactory,进而建立sqlsession。
-
前者的生命周期是程序级别的,后者是每一个sql级别的
-
两个配置,一个是db的基础设置,一个是Map的设置,每一个sql的名字对应一个具体的sql。java通过配置文件读取具体的sql,有入参parametertype,出参resultset
-
自己建立一般是pojo类,对sql的处理类
-
基础操作
-
增删改,除了map配置的方法,还有一种接口的方式,注解的方式
-
查询语句:入参可以是hashmap类型,parametertype可以是一个类名,可以说是对象
-
查询返回是个list,使用selectlist
-
resultmap和result type只能有一个,区别是resultmap用来处理比较复杂的映射,但又不能简单的用对象表示,定制化返回用map
-
事务处理:写在基本配置里面,transactionmanager配置type是jdbc还是managed,后者是Spring的
-
首先open session设置为false
-
打开会话,事务开始
-
提交会话,事务提交
-
关闭会话,释放资源
-
联合查询和子查询,都可以达到目的,区别是,联合查询一次查询,占用资源大。后者是N+1查询,可能更慢。但是注意MYBATIS是有懒加载的功能设置,在别名设置之前,设置了之后是只有用到某个子查询的时候才会去加载,节省了时间和资源。
-
mybatis动态SQL。
-
if和choose就是在SQL根据入参的不同,选择不同的AND查询或则和UPDATE条件
-
where标记,就是智能去掉and,update智能去掉逗号,trim智能用前缀后缀,前置后置等,可以替代where等
-
foreach,循环查询in标识符,insert也可以,相当于批量赋值
-