Spring框架引入MyBatis和ORM解析-----Spring框架

本文讨论了分层架构在降低程序耦合、提高代码复用性中的作用,重点比较了Mybatis和Hibernate作为ORM框架的优缺点,以及Mybatis如何通过定制化SQL和Spring集成简化数据库操作。
为什么要分层
降低程序耦合度,提高代码的扩展力,提高代码的复用性
表现层(UI层),业务逻辑层(BLL),数据访问层(持久层DAL)DAO进行CRUD
持久层框架:Mybatis,Hibernate(配置太过复杂,上升到一对多,多对一,多对多关系,配置过于复杂,效率也没有Mybatis高)
JOOQ,Guzz,Spring Data,Active JDBC
JDBC的不足,我们的SQL语句写在了JAVA程序内部,一旦根据业务修改时,原本写的JDBC连接数据库的SQL语句就不能用了
这就破坏了OCP原则(开闭原则),还有封装重复的代码
Mybatis本质上就是对JDBC的封装,通过Mybatis完成CRUD,负责持久层
ORM:Object(虚拟机中的Java对象),Relational(关系型数据库)
Mapping(将Java虚拟机中的对象映射到数据库中的一方记录,或是将数据库表映射到Java虚拟机的一个Java对象)
Mybatis框架就是一个ORM框架,将数据库表的一条记录和java对象映射起来
Hibernate框架就是一个全自动的ORM,使用Hibernate框架时不需要手动编写SQL语句,完全自动化的ORM框架
Mybatis是一个半自动的ORM,因为Mybatis框架中的SQL语句是需要手动编写的
Java中与数据库表对应的类,有不同的称呼Bean(豆子),pojo(普通java类),domain(领域模型)
MyBatis的特点:
支持定制化SQL,储存过程,基本映射以及高级映射
避免了几乎所有的JDBC代码手动设置参数以及获取结果集
支持XML开发,支持注解式开发
将java的POJOS,简单普通的java对象映射成数据库中的记录
体积小好学,完全SQL解耦合,提供了基本映射标签,提供了高级映射标签
提供了XML标签,支持动态SQL编写
为什么要分层
降低程序耦合度,提高代码的扩展力,提高代码的复用性
表现层(UI层),业务逻辑层(BLL),数据访问层(持久层DAL)DAO进行CRUD
持久层框架:Mybatis,Hibernate(配置太过复杂,上升到一对多,多对一,多对多关系,配置过于复杂,效率也没有Mybatis高)
JOOQ,Guzz,Spring Data,Active JDBC
JDBC的不足,我们的SQL语句写在了JAVA程序内部,一旦根据业务修改时,原本写的JDBC连接数据库的SQL语句就不能用了
这就破坏了OCP原则(开闭原则),还有封装重复的代码
Mybatis本质上就是对JDBC的封装,通过Mybatis完成CRUD,负责持久层
ORM:Object(虚拟机中的Java对象),Relational(关系型数据库)
Mapping(将Java虚拟机中的对象映射到数据库中的一方记录,或是将数据库表映射到Java虚拟机的一个Java对象)
Mybatis框架就是一个ORM框架,将数据库表的一条记录和java对象映射起来
Hibernate框架就是一个全自动的ORM,使用Hibernate框架时不需要手动编写SQL语句,完全自动化的ORM框架
Mybatis是一个半自动的ORM,因为Mybatis框架中的SQL语句是需要手动编写的
Java中与数据库表对应的类,有不同的称呼Bean(豆子),pojo(普通java类),domain(领域模型)
MyBatis的特点:
支持定制化SQL,储存过程,基本映射以及高级映射
避免了几乎所有的JDBC代码手动设置参数以及获取结果集
支持XML开发,支持注解式开发
将java的POJOS,简单普通的java对象映射成数据库中的记录
体积小好学,完全SQL解耦合,提供了基本映射标签,提供了高级映射标签
提供了XML标签,支持动态SQL编写
mybatis引入依赖
spring-context,spring-jdbc,mysql驱动,德鲁伊连接池
mybatis,mybatis-spring(最重要的,mybatis提供的与Spring框架集成的依赖)
mapper(dao),service,serviceImpl,pojo(bean)
pojo(bean):属性私有化,提供get和set方法和toString
mapper:定义接口,定义方法
mapper配置文件:在配置文件中配置命名空间,以及每一个方法对应的sql
mybatis引入依赖
spring-context,spring-jdbc,mysql驱动,德鲁伊连接池
mybatis,mybatis-spring(最重要的,mybatis提供的与Spring框架集成的依赖)
mapper(dao),service,serviceImpl,pojo(bean)
pojo(bean):属性私有化,提供get和set方法和toString
mapper:定义接口,定义方法
mapper配置文件:在配置文件中配置命名空间,以及每一个方法对应的sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值