Hibernate创建session工厂
要创建session的时候,只要调用这个类里面的getSession()方法就可以了,
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static SessionFactory factory;
static {
try {
//读取配置文件
Configuration cfg = new Configuration().configure();
factory = cfg.buildSessionFactory();
}catch(Exception e) {
e.printStackTrace();
}
}
public static SessionFactory getSessionFactory() {
return factory;
}
//创建session
public static Session getSession() {
return factory.openSession();
}
//关闭session,要关闭的时候条用这个方法就可以了
public static void closeSession(Session session) {
if (session != null) {
if (session.isOpen()) {
session.close();
}
}
}
}
要创建session的时候就调用如:
Session session = null;
Transaction tx = null;
User user = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction(); //开启一个事物
//Transient状态
user = new User();
user.setName("qqq");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//persistent状态,当属性发生改变的时候,hibernate会自动和数据库同步
session.save(user);
user.setName("sss");
//session.update(user);
tx.commit();
}catch(Exception e) {
e.printStackTrace();
tx.rollback();
}finally {
HibernateUtils.closeSession(session);
}
------------------------------------------------------------------------
把映射文件生成数据库表,就要执行配置文件如下程序代码:
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class ExportDB {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}