Hibernate:JDBCConnectionException: Cannot open connection
连接一段时间后报出错误,HibernateUtil.java:publicclassHibernateUtil{privatestaticfinalSessionFact...
连接一段时间后报出错误,
HibernateUtil.java:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
private static final ThreadLocal session=new ThreadLocal();
static {
try { //表示从xml配置中获得会话工厂
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Session getSession()throws HibernateException { //用来利用会话工厂生成一个新的会话
Session s=(Session)session.get();
if(s==null){
s= sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
if (s != null)
s.close();
session.set(null);
}
}
DAO:
public void addArticle(Article article){
Session sh=HibernateUtil.getSession();
Transaction tx = sh.beginTransaction();
sh.save(article);
tx.commit();
HibernateUtil.closeSession();
}
上网搜都说是没有关闭数据库的连接。我以上类和方法是否可以关闭连接? 展开
HibernateUtil.java:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
private static final ThreadLocal session=new ThreadLocal();
static {
try { //表示从xml配置中获得会话工厂
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Session getSession()throws HibernateException { //用来利用会话工厂生成一个新的会话
Session s=(Session)session.get();
if(s==null){
s= sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
if (s != null)
s.close();
session.set(null);
}
}
DAO:
public void addArticle(Article article){
Session sh=HibernateUtil.getSession();
Transaction tx = sh.beginTransaction();
sh.save(article);
tx.commit();
HibernateUtil.closeSession();
}
上网搜都说是没有关闭数据库的连接。我以上类和方法是否可以关闭连接? 展开
2012-02-29
展开全部
数据库连接有问题,数据库没有打开。
启帆信息
2024-11-19 广告
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!...
点击进入详情页
本回答由启帆信息提供
展开全部
sessionFactory = new Configuration().configure().buildSessionFactory();
try中要这么写
Configuration configuration = new Configuration()
.configure(HIBERNATE_CONFIG_FILE);
sessionFactory = configuration.buildSessionFactory();
HIBERNATE_CONFIG_FILE 为hibernate.cfg.xml配置文件的路径。。 这样hibernate 才能找到你数据库的信息,然后连接数据库
try中要这么写
Configuration configuration = new Configuration()
.configure(HIBERNATE_CONFIG_FILE);
sessionFactory = configuration.buildSessionFactory();
HIBERNATE_CONFIG_FILE 为hibernate.cfg.xml配置文件的路径。。 这样hibernate 才能找到你数据库的信息,然后连接数据库
追问
我是可以连接的。但是过一段时间后才会报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是数据库连接的路径写错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询