java se 中hibernate操作数据库步骤
实体类
package com.judong.entity;
public class User {
private Integer uid;
private String username;
private String password;
private Integer age;
private String address;
public User() {
}
public User(String username, String password, Integer age, String address) {
this.username = username;
this.password = password;
this.age = age;
this.address = address;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
工具类
package com.judong.utils;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
//创建工具类,确保SessionFactory对象只被创建一次
public class HibernateUtils {
private static Configuration configuration = null;
private static SessionFactory sessionFactory = null;
static {
// 1.加载配置文件,Configuration自动在src目录下寻找名称为hibernate.cfg.xml的配置文件。
// 将核心配置文件加进Configuration对象中
configuration = new Configuration().configure();
// 2.创建SessionFactory对象,类似于JDBC中的连接池.
// configuration对象在生成SessionFactory的过程中会根据核心配置文件中的配置
// 自动创建数据库
sessionFactory = configuration.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
测试类
package com.judong.test;
import com.judong.entity.User;
import com.judong.utils.HibernateUtils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
public class Test {
public static void main(String[] args) {
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
// 3.创建Session对象,类似JDBC中的Connection
// session对象是单线程的,米个人只能用自己session
// 调用session对象可以进行crud操作
Session session = sessionFactory.openSession();
// 4.手动开启事务
Transaction transaction = session.beginTransaction();
// 5.编写逻辑代码
User user = new User("张三", "123", 20, "光明路");
session.save(user);
// 6.提交事务
transaction.commit();
// 7.关闭资源
session.close();
sessionFactory.close();
}
}
操作步骤和底层的JDBC很相似。
其中比较重要的就是其实中的几个四个对象Configuration、SessionFactory、Session和Transcation。
- Configuration:用于加载hibernate的核心配置文件,将配置文件配置的信息放进对象中用于创建SessionFactory,在Configuration对象调用方法buildSessionFactory()时,hibernate会根据加载的核心配置文件信息自动创建指定数据库中的表。前提是配置了自动建表属性。
- SessionFactory:创建Session的工厂,每张表应该只能创建一个SessionFactory,节省资源。所以应该创建一个工具类,在类的静态代码区创建。当对象首次被调用时创建。
- Session:这个对象用于对数据库进行crud操作。此对象是单线程的,每个用户都应该有独立的Session对象,不能使用别人的。
- Transaction:事务管理,事务提交和回滚。保证事务的四大特性。
hibernate操作数据库基本步骤如上所述,学习更加深入后再修改增添。