JDBC和Hibernate的区别


JDBC是Java数据库连接的缩写。它用于将您的应用程序连接到数据库并进行事务处理。它是一个开源的Java API。

Hibernate也用于将您的应用程序连接到数据库并进行数据库相关的事务处理,但采用不同的方法。它具有一个对象关系映射库,该库将数据库的表和列与Java对象映射。它支持在数据库中进行面向对象编程。Hibernate提供HQL来访问数据库中的数据。

序号
关键点
JDBC
Hibernate

1

基本

它是一种数据库连接技术

它是一个框架

2

延迟加载

不支持延迟加载

Hibernate支持延迟加载

3

事务管理

我们需要显式地维护数据库连接和事务。

Hibernate本身管理所有事务

4.

缓存

我们需要编写代码来实现缓存

Hibernate提供两种类型的缓存

一级缓存

二级缓存


一级缓存不需要额外的代码。

5.

性能

性能较低

高性能

Hibernate示例

@Entity
public class User {
   @Id
   Integer id;
   String name;
   public Integer getId() {
      return id;
   }
   public void setId(Integer id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.journaldev.hibernate.util.HibernateUtil;
public class HibernateConnectionExample {
   public static void main(String[] args) {
      //get session factory to start transcation
      SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
      Session session = sessionFactory.openSession();
      Transaction tx = session.beginTransaction();
      User user = (User) session.get(User.class, new Integer(2));
      System.out.println("User ID= "+user.getId());
      System.out.println("User Name= "+user.getName());
      //Close resources
      tx.commit();
      sessionFactory.close();
   }
}

JDBC连接示例

class JDBCConnectionExample {
   public static void main(String a[]) {
      String url = "jdbc:oracle:thin:@localhost:1521:local";
      String user = "sys";
      String password = "abc123";
      String sql = "select * from user";
      Connection con=null;
      try {
         DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
         //Reference to connection interface
         con = DriverManager.getConnection(url,user,password);
         Statement st = con.createStatement();
         int respCode = st.executeUpdate(sql);
         con.close();
      }
      catch(Exception ex) {
         System.err.println(ex);
      }
   }
}

更新于:2020年7月14日

5000+ 浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告