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);
}
}
}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP