- hibernate.cfg.xml để cấu hình hibernate như chuỗi kết nối, mapping...
- HibernateUtils để tạo và quản lý SessionFactory cho ứng dụng
- Class java POJO gồm properties và getter, setter đại diện cho table trong chương trình java
- File mapping lớp java trên với table trong DB, có đuôi là hbm.xml. Cụ thể đây là file Product.hbm.xml
- cuối cùng là lớp Main dùng để chạy chươn trình. Câu lệnh sql:
CREATE TABLE PRODUCT( ID INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(50) NOT NULL, PRICE INT NOT NULL, PRIMARY KEY(ID) )Tạo dự án maven với các dependencies sau:
vào phần src/main/resources tạo file cấu hình cho hibernate như sau: hibernate.cfg.xmlmysql mysql-connector-java 5.1.20 compile org.hibernate hibernate-core 4.0.1.Final compile org.slf4j slf4j-api 1.6.4 compile org.hibernate hibernate-entitymanager 4.0.1.Final compile
tạo class HibernateUtils có nhiệm vụ tạo ra một SessionFactory quản lý các session chung cho toàn bộ ứng dụng, lưu ý ở đây ta tạo biến private static SESSION_FACTORY và sử dụng phương thức getSessionFactory để chắc chắn rằng tại mọi thời điểm chỉ có 1 đối tượng SessionFactory được tạo ra.com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/abc root 1 org.hibernate.dialect.MySQLDialect thread org.hibernate.cache.NoCacheProvider false validate
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static SessionFactory SESSION_FACTORY;
public static SessionFactory getSessionFactory() {
if (SESSION_FACTORY == null) {
Configuration configuration = new Configuration();
SESSION_FACTORY = configuration.configure().buildSessionFactory();
}
return SESSION_FACTORY;
}
}
tạo lớp Product (POJO,Bean..) trong package domain gồm các thuộc tính và setter, getter
public class Product {
private int id;
private String name;
private int price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Product[id: " + id + " name: " + name + " price: " + price + "]";
}
}
tạo file mapping class Product thành bảng PRODUCT trong database:
Product.hbm.xml lưu ý package trong mappingCuối cùng là phương thức main để test
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import vn.ds.domain.Product;
import vn.ds.util.HibernateUtils;
public class ProductController {
public void save(Product product) {
SessionFactory sf = HibernateUtils.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(product);
session.getTransaction().commit();
session.close();
}
public void update(Product product) {
SessionFactory sf = HibernateUtils.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.update(product);
session.getTransaction().commit();
session.close();
}
public List read(){
SessionFactory sf = HibernateUtils.getSessionFactory();
Session session = sf.openSession();
List emps = session.createQuery("from Product").list();
session.close();
return emps;
}
public static void main(String[] args) {
ProductController pc = new ProductController();
ArrayList products = (ArrayList) pc.read();
for(Product p : products) {
System.out.println(p.toString());
}
}
}
hay
Trả lờiXóa