hibernate 与 jdbc 区别:抽象级: hibernate 提供高级对象映射和查询生成, jdbc 需要手动编写代码。对象-关系映射: hibernate 映射 java 而对象和数据库表 jdbc 不提供此功能。查询生成: hibernate 使用 hql 然而,简化查询生成 jdbc 需要复杂的写作 sql 查询。事务管理: hibernate 对事务进行自动管理 jdbc 需要手动管理。
Hibernate 框架与 JDBC 的区别
简介
Hibernate 是一个对象-关系映射 (ORM) 用于简化的框架 Java 应用程序与数据库之间的交互。JDBC(Java 数据库连接)是一个 API,它允许 Java 应用程序直接访问数据库。
抽象级别
- JDBC:低级 API,开发人员需要编写大量的样板代码进行查询和更新。
- Hibernate:高级 API,为简化数据库交互提供对象映射和自动查询。
对象-关系映射
- JDBC:开发人员需要手动分析和转换数据库结果集,而无需提供对象-关系映射功能。
- Hibernate:通过映射 Java 对象与数据库表之间的关系,提供对象-关系映射能力。
查询生成
- JDBC:开发人员必须写复杂的文章 SQL 查询。
- Hibernate:通过 HQL(Hibernate 查询语言)提供查询生成功能,类似于 SQL,但更面向对象。
事务管理
- JDBC:手动管理事务,容易出错。
- Hibernate:可自动提交或回滚事务,提供事务管理功能。
优点
JDBC
- 灵活性和定制性
- 较少的开销
Hibernate
- 提高开发效率
- 减少编写样板代码的需求
- 更高的维护性
实战案例
使用 JDBC 所有学生:
// 获得 Connection 对象 Connection conn = DriverManager.getConnection("jdbc:<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>://localhost/mydb", "user", "password"); // 创建 Statement 对象 Statement stmt = conn.createStatement(); // 执行查询 ResultSet rs = stmt.executeQuery("SELECT * FROM students"); // 循环复历结果集并打印学生姓名 while (rs.next()) { System.out.println(rs.getString("name")); } // 关闭资源 rs.close(); stmt.close(); conn.close();
登录后复制
使用 Hibernate 所有学生:
// 获得 Session 对象 Session session = HibernateUtil.getSessionFactory().openSession(); // 创建查询 Query query = session.createQuery("FROM Student"); // 执行查询并获取结果列表 List<Student> students = query.list(); // 循环遍历结果列表,打印学生姓名 for (Student student : students) { System.out.println(student.getName()); } // 关闭 Session 对象 session.close();
登录后复制
以上是Hibernate。 框架与 JDBC 有什么区别?详情请关注图灵教育的其他相关文章!