session问题

yhm2046 2013-08-21 05:21:42
/**
* @description 向t_main_type表插入新类别 insert into t_main_type('mt00','类别名');
*/
public static boolean insert2MainType(MainType mainType) {
Session ses = null;
SessionFactory sf = null;
try {
Configuration cfg = new Configuration().configure();
sf = cfg.buildSessionFactory();//这句为什么过时了,有啥新的方法?
ses = sf.openSession();

Transaction trans = ses.beginTransaction();
ses.save(mainType);
trans.commit();
} catch (HibernateException e) {
System.out.println("exception-->" + e);
e.printStackTrace();
return false;
} finally {
// sf.close(); //为什么这里不能关闭,关闭就报错:Unknown service requested [org.hibernate.stat.spi.StatisticsImplementor]
ses.close();
}
return true;
}
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhm2046 2013-08-23
  • 打赏
  • 举报
回复
引用 5 楼 rui888 的回复:
   Configuration cfg = new Configuration().configure();  
        ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(  
                cfg.getProperties()).buildServiceRegistry();  
        factory = cfg.buildSessionFactory(sr);  
谢谢,解决了:
public static ArrayList<MainType> queryMainType() {
		ArrayList<MainType> list = null;
		SessionFactory sf = null;
		Session ses = null;
		try {

			Configuration cfg = new Configuration().configure();
			ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(
					cfg.getProperties()).buildServiceRegistry();
			sf = cfg.buildSessionFactory(sr);
			ses = sf.openSession();

			Criteria c = ses.createCriteria(MainType.class);
			list = (ArrayList<MainType>) c.list();
		} catch (HibernateException e) {
			System.out.println("hibernate exception");
			e.printStackTrace();
			return list;
		} finally {
			ses.close();
			sf.close();
		}

		return list;
	}
xiaohuashenshou 2013-08-22
  • 打赏
  • 举报
回复
configurationconfigure()方法里没有参数吗,不指明hibernate配置文件路径怎么去初始化
tony4geek 2013-08-22
  • 打赏
  • 举报
回复
不同版本吧的 jar
tony4geek 2013-08-22
  • 打赏
  • 举报
回复
   Configuration cfg = new Configuration().configure();  
        ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(  
                cfg.getProperties()).buildServiceRegistry();  
        factory = cfg.buildSessionFactory(sr);  
yhm2046 2013-08-22
  • 打赏
  • 举报
回复
查了下说是这样写:
Configuration cfg = new Configuration().configure();
			 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
			 .applySettings(cfg.getProperties()).buildServiceRegistry();
			 SessionFactory sf = cfg.configure().buildSessionFactory(
			 serviceRegistry);
			 Session ses = sf.openSession();
但是我写了报错
ZHOU西口 2013-08-21
  • 打赏
  • 举报
回复
创建SessionFactory的方法不只LZ指出的,可以查看hibernate API
licip 2013-08-21
  • 打赏
  • 举报
回复
你这个可能是新版本吧。 新版本的方法有些不同了。
soton_dolphin 2013-08-21
  • 打赏
  • 举报
回复
先让session断开连接 session.disconnect();

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧