历史:apache的一个开源项目。
ibatis ---2010年apache迁移到了google code ---mybatis
作用:是一款持久层框架,支持定制化sql语句,存储过程,高级映射。
xml映射文件,来配置和映射原生信息。DAO层。
持久化:把数据保存到硬盘上。
持久层:业务层需要操作数据的。service层调用dao层。
数据在磁盘上的。
service层调用数据库。耦合度太高,复用性太差。
把操作数据库的代码统一抽离出来,形成了一个独立的数据库中间层。
持久层框架:
1.mybatis
优点:
(1)sql语句和java分离
(2)动态sql语句。内置了一些逻辑判断的标签
(3)实现列名和字段名的自动映射
(4)写原生sql语句,灵活
缺点:
(1)调试难。通过日志框架解决
(2)使用逻辑标签拼接sql语句,语法很难受
(3)名字之间映射需要匹配
(4)高度依赖于开发者的sql水平
2.Mybatis-plus(苞米豆),不需要写sql
3.Hibernate:JBOSS,不需要写sql。hql
4.Spring data JPA 创建表
面试题:
$和#的区别?
$:代表底层使用的statement,直接进行字符串替换
#:代表的底层使用preparedstatement,替换预编译语句中的?(推荐 效率高 安全)