java数据库连接,jdbc、mybatis、hibernate的区别
从层次上看,JDBC是下层的持久层操作方式,是一种用于执行SQL语句的Java API,而Hibernate和MyBatis则是在JDBC的基础上进行了封装,方便程序员操作持久层。
从功能上看,JDBC就是由一组用Java语言编写的类和接口组成,简单的建立 数据库连接,然后通过sql语句对数据库进行各种操作。Hibernate将数据库中的数据表映射到持久层的Java对象,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql,但SQL语句修改优化比较困难;MyBatis 将 SQL 语句中的输入参数和输出参数映射为 Java 对象,仅有基本的字段映射,对象数据以及对象实际关系,仍然需要通过手写sql来实现和管理,SQL 修改和优化比较方便。
从使用上来看,采用原生态的 JDBC 在项目中使用起来成本还是很高的,如果你是做底层编程,对性能有极高的要求,就应该使用JDBC;采用hibernate,会牺牲程序的执行效率和会固定思维模式,难以使用数据库的一些功能,降低程序开发的灵活性,如果你要控制数据库的完整性,更专注业务逻辑、数据关系、对象关系,建议使用Hibernate;采用mybatis是对使用jdbc和hibernate的折中,如果想灵活使用sql语句,又想避免直接使用jdbc的高成本,推荐使用MyBatis框架。