MyBatis框架学习(1)
程序员文章站
2022-05-23 19:52:00
...
MyBatis简介
内容为雷丰阳老师的SSM框架内容记录
1.MyBatis:和数据库进行交互:持久化层框架(SQL映射框架);
1)从原始的JDBC---dbutils(QueryRunner)---JdbcTemplate---等等;
称为工具;
工具:一些功能的简单封装
框架:某个领域的整体解决方案(考虑缓存,考虑异常处理问题,考虑部分字段映射问题。。。)
不用原生JDBC的原因:
1.麻烦;
2. sql语句是硬编码在程序中;耦合(数据库层和Java编码耦合)
原生jdbc执行流程
2)Hibernate-数据库交互的框架(ORM框架)(使用各种框架)
ORM(Objcet Relation Mapping)对象关系映射;
你连sql语句都不用写,你只需要创建好JavaBean然后使用session.get();方法里面传入你要查询的编号和类
(他的sql语句做的是一个黑箱操作的,你看不到他的执行)
后期不再使用的原因就是因为它太强大了,它不会让你去改sql语句,但是我们后期的sql语句又过于复杂,所以就不用了;
创建好JavaBean;
@Table("t_employee")
class Employee{
private Integer empId;
private String empName;
}
session.get("1", Employee.class);
缺点:
1.定制sql;
2.HQL;
3.全映射框架;部分字段映射很难;能做但是很难;
希望:最好有一个框架能支持定制化sql,而且功能强大;sql也不要硬编码在Java文件中(导致维护修改起来比较麻烦)
3)MyBatis
按照洗衣服来做举例:
原生JDBC---拿着衣服,棒槌到河边去手洗
Hibernate---全自动的洗衣机,你把衣服放进去,他就给你洗,烘干,但是有些衣服不能烘干,所以很麻烦
MyBatis---半自动洗衣机,你来觉得怎么洗
MyBatis它的装配还是交给框架自己来解决的,你只要去管你的sql语句就行
1.MyBatis将重要的步骤抽取出来可以人工定制,其他步骤自动化;
2.重要步骤都是些在配置文件中(好维护);
3.完全解决数据库的优化问题;
4.MyBatis底层就是对原生的JDBC的一个简单封装;
5.即将Java编码与sql抽取出来,还不会失去自动化功能;半自动的持久化功能
6.MyBatis是一个轻量级的框架