当前位置: 首页 > 编程笔记 >

JDBC和Hibernate之间的区别

陆海阳
2023-03-14
本文向大家介绍JDBC和Hibernate之间的区别,包括了JDBC和Hibernate之间的区别的使用技巧和注意事项,需要的朋友参考一下

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

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

序号

JDBC
冬眠

1

基本的 

它是数据库连接技术 

这是一个框架,

2

延迟加载 

它不支持延迟加载 

Hibernate支持延迟加载 

3

事务管理 

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

Hibernate自己管理所有事务 

4。

快取 

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

Hibernate提供了两种缓存类型:

一级缓存 

二级缓存


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

5,

性能 

效能低下

高性能 

休眠示例

@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();
   }
}

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());
         //参考连接接口
         con = DriverManager.getConnection(url,user,password);
         Statement st = con.createStatement();
         int respCode = st.executeUpdate(sql);
         con.close();
      }
      catch(Exception ex) {
         System.err.println(ex);
      }
   }
}
 类似资料:
  • 问题内容: 但没人回答我的下一个问题。经典的hibernate方法使用和JPA 实现之间有什么区别?我听说此JPA实现使用并像包装器一样工作,这是真的吗? 问题答案: 确实。 JPA只是一个API,允许您从使用的持久层中进行抽象。Hibernate提供了充当接口的实现,它使用与Hibernate 相同的基础方法。 这个想法是,例如,您可以将实现切换到Eclipse Link,而不必更改任何源代码。

  • 问题内容: 我的问题很简单:Spring jdbcTemplate和Hibernate之间的主要区别是什么?我们应该考虑使用其中一种的主要原因是什么? 谢谢 问题答案: Hibernate是一个非常庞大的解决方案,具有数据持久性和ORM(包括JPA实现)。另外,还定义了许多方法来管理Hibernate中的实体,如何持久化,事务等。在Hibernate中,您可以使用SQL,HQL或Java批注。JD

  • 问题内容: 我正在考虑使用Hibernate保留我的模型。我似乎找到两种方法来做到这一点。 第一个使用,例如: 另一个使用带注释的子类/接口扩展: 另外,有时我看不到注释。有什么区别? 我没有找到“何时/应该使用前一种或后一种方法”的答案,因此我可以得到解释吗? 问题答案: 只是您可以在Spring docs网站上找到这些注释的描述。 很快,要回答您的问题,它们之间的区别是它们用于不同的目的。 用

  • 本文向大家介绍Hibernate中get()和load()之间的区别,包括了Hibernate中get()和load()之间的区别的使用技巧和注意事项,需要的朋友参考一下 在休眠模式下,and是两种用于获取给定标识符的数据的方法。它们都属于Hibernate会话类。如果给定标识符的会话高速缓存或数据库中没有可用的行,则方法返回null,而方法抛出未找到对象的异常。  序号 键 得到() 加载()

  • 本文向大家介绍Hibernate中save()和persist()之间的区别,包括了Hibernate中save()和persist()之间的区别的使用技巧和注意事项,需要的朋友参考一下 Save()和这两种方法都用于在数据库中保存对象。  根据文档- Save()-坚持给定的瞬时实例,首先分配一个生成的标识符。(或者,如果使用分配的生成器,则使用标识符属性的当前值。)如果关联是用cascade

  • 本文向大家介绍Hibernate和Eclipse链接之间的区别,包括了Hibernate和Eclipse链接之间的区别的使用技巧和注意事项,需要的朋友参考一下 Hibernate和Eclipse链接都是对象关系映射工具。它们都是JPA的实现。 Hibernate是Red hat构建的非常流行的JPA实现。它还具有JPA不提供的一些额外功能。 Eclipse是Eclipse基础构建的JPA的开源实现