需要在 hibernate.cfg.xml文件 中添加的配置
- <property name = “hibernate.current_session_context_class” >线程</ property>
<property name =“hibernate.current_session_context_class”>线程</ property>
类创建³³ HibernateUtil.java实现单例模式的SessionFactory的。
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
- 公共类 HibernateUtil {
- 私有静态最终 配置配置;
- 私有静态最终 SessionFactory工厂;
- static { //静态初始化块,加载配置信息
- config = new Configuration().configure(); // 读取文件
- factory = config.buildSessionFactory();
- }
- public static Session getSessionFactory(){
- return factory;
- }
- }
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final Configuration config;
private static final SessionFactory factory;
static { // 静态初始化块,加载配置信息
config = new Configuration().configure(); // 读取文件
factory = config.buildSessionFactory();
}
public static Session getSessionFactory(){
return factory;
}
}
实现了session对象只被创建一次,避免了多次加载sessionfactory的负担。
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- import org.junit.Test;
- public class Test {
- @测试
- public void select(){
- 会话会话= HibernateUtils.getSession();
- Transaction t = session.beginTransaction();
- }
- }
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
public class Test {
@测试
public void select(){
会话会话= HibernateUtils.getSession();
Transaction t = session.beginTransaction();
}
}
在测试类中去调用静态代码块类就可以进行操作了。
使用的getCurrentSession()获得会话
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.Transaction;
- import demo.entity.User;
- public class Test {
- public static void main(String [] args){
- SessionFactory factory = HibernateUtil.getSessionFactory();
- //的getCurrentSession()生成的会话不需要手动关闭,会在事务提交后自动关闭。
- Session session = factory.getCurrentSession();
- 用户用户= 新 用户();
- user.setUsername(“ qqqqq ” );
- user.setPassword(“ qqqqq ” );
- user.setNickname(“name1” );
- Transaction transaction = null;
- try {
- transaction = session.beginTransaction();
- session.save(user);
- //session.delete(user);//删除操作
- //User tmp = session.find(User.class, 1);//查找操作
- //session.update(user);//更新操作
- transaction.commit();
- } catch (Exception e) {
- if (transaction != null) {
- transaction.rollback();
- }
- e.printStackTrace();
- }
- }
- }
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import demo.entity.User;
public class Test {
public static void main(String[] args) {
SessionFactory factory = HibernateUtil.getSessionFactory();
//的getCurrentSession()生成的会话不需要手动关闭,会在事务提交后自动关闭。
Session session = factory.getCurrentSession();
用户用户=新用户();
user.setUsername( “QQQQQ”);
user.setPassword( “QQQQQ”);
user.setNickname( “NAME1”);
Transaction transaction = null;
尝试{
transaction = session.beginTransaction();
session.save(用户);
//session.delete(user);//删除操作
// User tmp = session.find(User.class,1); //查找操作
//session.update(user);//更新操作
器transaction.commit();
catch(Exception e){
if(transaction!= null){
transaction.rollback();
}
e.printStackTrace();
}
}
}