java的持久化(JDBC ,mybatis, Hibernate, SpringJDBC)之间的区别
2017-01-11 21:46
274 查看
JDBC, Ibtais ,Hibernate ,SpringJDBC 是我们平时大家开发的过程中使用的比较多的几种持久化技术,具体在开发的过程中该怎么选择呢?
先来说说各自的特点,首先是JDBC,这个是Java语言提供的规范,主要就是定义一些接口和通讯类,接口定义好之后,各个数据库厂商来提供具体的实现,比如Oracle,Mysql等,这些厂商都有自己的JDBC具体实现,当然,我们也可以自己实现一个,不过成本比较高。对于JDBC ,个人认为主要的特点是原生,效率高(用得好的情况下),使用起来也比较灵活 ,缺点呢也很明显,开发起来代码比较罗嗦,可扩展性不够好。
然后是ibatis,现在已经改名为mybatis,这是一个半自动化的ORM框架,需要我们自己写SQL语句,主要特点是把SQL语句和Java的Field做映射,通过parameterMap和resultMap来做映射,所以,ibatis使用起来也是比较灵活的,可以自己写Sql,并且如果你家公司有高手DBA,交给他来优化或者写SQl也是很不错的选择,缺点呢,由于Sql语句和具体的数据库相对应,换了数据库的话,那么Sql语句需要重写过或则修改过。
和ibatis对比的比较多的就是hibernate了,这可以算是一个自动化的ORM框架,应为他自带HQL语句解释器,利用这个特性,开发人员可以认真写HQl语句就可以了,只要在不同的数据库中使用不同的驱动,这样就可以比较方便的在不同的DB上切换或者移植 ,但是有些比较复杂的SQL语句在转换为HQL语句的时候还是比较有难度的,如果没有hibernate开发高手,个人觉得还是使用ibatis比较好
spring 的核心思想是IOC和AOP,但是为了和其他框架竞争,Spring自己也实现了一套JDBC的东西,使用的过程中也可以简化一些开发的代码量,并且Spring本身对事物提供强大的支持能力,这是我觉得他比较有特色的地方。
所以,一般项目在开发之前首先要搭框架,选择什么样的持久化方案要根据自己团队的情况来定,而不是别人说什么好就用什么。
先来说说各自的特点,首先是JDBC,这个是Java语言提供的规范,主要就是定义一些接口和通讯类,接口定义好之后,各个数据库厂商来提供具体的实现,比如Oracle,Mysql等,这些厂商都有自己的JDBC具体实现,当然,我们也可以自己实现一个,不过成本比较高。对于JDBC ,个人认为主要的特点是原生,效率高(用得好的情况下),使用起来也比较灵活 ,缺点呢也很明显,开发起来代码比较罗嗦,可扩展性不够好。
然后是ibatis,现在已经改名为mybatis,这是一个半自动化的ORM框架,需要我们自己写SQL语句,主要特点是把SQL语句和Java的Field做映射,通过parameterMap和resultMap来做映射,所以,ibatis使用起来也是比较灵活的,可以自己写Sql,并且如果你家公司有高手DBA,交给他来优化或者写SQl也是很不错的选择,缺点呢,由于Sql语句和具体的数据库相对应,换了数据库的话,那么Sql语句需要重写过或则修改过。
和ibatis对比的比较多的就是hibernate了,这可以算是一个自动化的ORM框架,应为他自带HQL语句解释器,利用这个特性,开发人员可以认真写HQl语句就可以了,只要在不同的数据库中使用不同的驱动,这样就可以比较方便的在不同的DB上切换或者移植 ,但是有些比较复杂的SQL语句在转换为HQL语句的时候还是比较有难度的,如果没有hibernate开发高手,个人觉得还是使用ibatis比较好
spring 的核心思想是IOC和AOP,但是为了和其他框架竞争,Spring自己也实现了一套JDBC的东西,使用的过程中也可以简化一些开发的代码量,并且Spring本身对事物提供强大的支持能力,这是我觉得他比较有特色的地方。
所以,一般项目在开发之前首先要搭框架,选择什么样的持久化方案要根据自己团队的情况来定,而不是别人说什么好就用什么。
相关文章推荐
- SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)之间区别
- hibernate jdbc mybatis 区别
- hibernate、ibatis、jdbc 三者之间的区别
- JDBC , Mybatis和Hibernate的区别
- Java系列之JDBC和ODBC之间的区别与联系
- mybatis javaType 和 jdbcType 区别
- Java系列之JDBC和ODBC之间的区别与联系
- MyBatis、JDBC、Hibernate区别
- ibatis与mybatis区别?Hibernate、MyBatis、JDBC区别?
- jdbc,mybatis,hibernate各自优缺点及区别
- 【JAVA框架】Hibernate 与Mybatis 区别
- hibernate、MyBatis、JDBC区别
- 【JAVA - SSM】之MyBatis与原生JDBC、Hibernate访问数据库的比较
- Java系列之JDBC和ODBC之间的区别与联系
- Java系列之JDBC和ODBC之间的区别与联系
- Java系列之JDBC和ODBC之间的区别与联系
- ibatis与mybatis区别,hibernate、mybatis、JDBC区别
- Java系列之JDBC和ODBC之间的区别与联系
- Java系列之JDBC和ODBC之间的区别与联系
- 【Java学习】mybatis和hibernate的区别