1.Mybatis是什么?
(1)mybatis是一个基于Java的持久层框架
(2)持久化概念:把内存中的数据保存到数据库的过程就叫做持久化
(3)mybatis既是一个持久层框架,同时也是一个ORM框架(对象关系映射 jpa/springDataJpa)
2.Mybatis特点
(1)MyBatis 是一个支持普通 SQL查询,存储过程(数据库mysql/oracle)和高级映射的优秀持久层框架
(2)MyBatis 使用简单的 *XML*或 注解 用于配置和原始映射,将接口和 Java 的*POJOs*(Plain Old Java Objects,普通的 Java对象 Employee/User/Entity/Domain)映射成数据库中的记录。 SQL映射方式
面试题:
1.JPA一级缓存和二级缓存是什么?
答:一级缓存: 属于entityManager级别缓存,jpa自带的,不用做任何配置, 命中条件
同一个entityManageFactory ,同一个EntityManager 同一个OID
二级缓存: 属于entityManagerFactory级别缓存,不是自带 ,需要做相应配置才行
命中条件:
同一个entityManageFactory ,不同一个EntityManager 同一个OID
2.jdbc和mybatis优缺点?
(1)jdbc操作步骤比较繁琐,比较执行贾琏欲执事 而mybatis不用 消除这个代码
(2)jdbc需要自己手动设置 参数 以及处理返回结果集 --而mybatis 不需要
(3)mybatis 可以采用 xml 和 注解 来写sql ...jdbc 把sql 写到代码里面, 可以提高维护性
(4)jdbc 它是操作数据库最底层的代码,mybatis也是从jdbc上面封装出来框架 mybatis支持缓存
3.使用Mybatis
1.导入jar包
2.建表
3.配置Mybatis-config.xml

4.UserMapper.xml(红线是误报,能正常运行)

5.跑一下测试,是个好习惯

6.工具类的抽取

4.Mybatis细节掌握
1.获取主键(有时候业务需要)

2.日志的使用
a.导包
b.

3.常见排错
断点
System.out.println
输出日志
面试题
#与$区别:
(1) $ 取得对象里面的某个属性 比如 ${id} Long getId
${id}
# 都可以
(2)重点 # select * from product where productName = ? 预编译的对象
$ select * from product where productName = 罗技G500 拼接字符串方式
# 推荐使用 $ sql注入问题
(3)后面使用$的 orderby+limit 后面就order by age/id不需要添加引号
5.动态sql

6.批量操作


