标签:自动化 一个 传统 hql 全自动 表之间 耦合 statement 交互
一、Mybatis简介
1、MyBatis;和数据库进行交互;持久化层框架(SQL映射框架)
1、从原始的JDBC----dbutils(QueryRunner)-------JdbcTemplate----xxx;这些与数据库进行交互的工作单元称为工具.
工具:一些功能的简单封装.
框架:某个领域的整体解决方案;缓存,考虑异常处理问题,考虑部分字段映射问题.
2、不使用原生JDBC的原因
1、麻烦.(注册驱动-获取连接-书写sql语句--获得sql语句执行者statement对象--封装结果).
2、sql语句是硬编码在程序中的;耦合(数据库层的代码和java代码耦合).
2、Hibernate-数据库交互的ORM框架(ORM:Object Relation Mapping 对象关系映射) Hbiernate是全自动框架
1、创建好javaBean,然后使用注解实现映射,然后获取对象.
@Table("t_employee")
class Employee{
private Integer empId;
private String empName;
}
session.get("1",Employe.class);
2、 Hibernate缺点:
1、定制sql,(SQL语句是非常关键的,我们往往希望自己写SQL,例如很多表之间的关联查询,我们只需要很少的一些字段,如果交给Hibernate去做,它没有那么智能,会去查询很多表,对数据库的负担很大).
2、HQL,(虽然Hibernate有自己特有的SQL语法HQL,但是我们要熟悉另外的一门SQL会加大学习成本,学习难度高).
3、全映射框架,部分字段映射很难;能做.(Hibernate是全映射框架,例如很多表之间的关联查询,我们只需要很少的一些字段,如果交给Hibernate去做,它没有那么智能,会去查询很多表,并且把表中所有的数据都查询出来,对数据库的负担很大,它也可以实现部分字段映射,但是你要知道Hibernate的底层原理,以及工作机制,学习难度很大).
3、通过总结传统的框架和Hibernate全自动框架的优缺点,我们迫切的需要一款框架满足如下要求
1、将重要的步骤(SQL语句)抽取出来,使得SQL和java代码解耦合,也便于后期的维护.
2、重要的步骤可以人工定制,其它步骤自动化.
3、完全解决数据库的优化问题.
4、为了解决上述问题Mybatis就应运而生了
1、 Mybatis是一个轻量级的框架.
2、 Mybatis底层就是对原生JDBC的一个简单封装.
3、 既将java代码和sql语句分离出来了,还保留了自动化的功能,属于半自动化的持久层框架.
标签:自动化 一个 传统 hql 全自动 表之间 耦合 statement 交互
原文地址:https://www.cnblogs.com/xiaomaomao/p/13645846.html