JDBC 和 Hibernate 之间的区别

jdbcobject oriented programmingprogramming

JDBC 是 Java 数据库连接的首字母缩写。它用于将您的应用程序连接到数据库和事务。它是一个开源 Java api。 

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

Sr.号
关键
JDBC
Hibernate

1

基本 

是数据库连接技术 

它是一个框架,

2

延迟加载 

它不支持延迟加载加载 

Hibernate支持延迟加载 

3

事务管理 

我们需要明确维护数据库连接和事务。  

Hibernate本身管理所有事务 

4.

缓存 

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

Hibernates 提供两种类型的缓存:

第一级缓存 

第二级缓存


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

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) {
      //获取会话工厂以启动事务
      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());
      //关闭资源
      tx.commit();
      sessionFactory.close();
   }
}

Example of JDBC Connection

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());
         //引用连接接口
         con = DriverManager.getConnection(url,user,password);
         Statement st = con.createStatement();
         int respCode = st.executeUpdate(sql);
         con.close();
      }
      catch(Exception ex) {
         System.err.println(ex);
      }
   }
}

相关文章