在程序运行提示org.hibernate.exception.GenericJDBCException: Cannot open connection错误
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.hibernate.exception.GenericJDBCException: Cannot open connection
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
org.hibernate.loader.Loader.doQuery(Loader.java:696)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
org.hibernate.loader.Loader.doList(Loader.java:2232)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
org.hibernate.loader.Loader.list(Loader.java:2124)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
dao.impl.UserDAOHibernateImpl.findByUserName(UserDAOHibernateImpl.java:18)
web.UserServlet.service(UserServlet.java:75)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.
在网上看了很多 但都没有解决 求助 急!!!! 展开
这次问题是数据库ip没有配置好,网上的数据库连接池都是在tomcat的配置文件下设置的,我们只需重新设置好即可。
解决方案:
1、使用“WIN+X”打开系统菜单,选择“命令提示符(管理员)”,打开命令提示符。
2、取到域名,这里的域名可以用ping XXX(你配置的网址获得)。我这里就拿百度的这个网址进行举例www.baidu.com。输入“ping www.baidu.com”。
3、等待数据的返回,我们会收到来自XXX(ip)的回复,我这里的是14.215.177.39,如下图。
4、我们将这个地址14.215.177.39放入连接数据库的url(jdbc.url),由域名ping成IP地址替换上去,完美解决问题。
扩展资料:
网上的数据库连接池都是在tomcat的配置文件下设置的,我们做的项目连接池是在spring里面配置的,是基于SSH框架,有spring来管理hibernate。
出现这个错误的原因及解决方法:
1、数据库没启动;这时你可以简单检验一下,可以拿一个你肯定没问题的项目运行一下,看数据库里表的数据。也可以可以打开数据库客户端,如果客户端能访问,比如SQLSERVER的查询分析器或者Mysql的SQLyog,则代表数据库正常,排除此可能。
2、检查一下hibernate的各项配置有没有问题,包括数据库方言,数据库驱动类,数据库用户名 ,用户密码,数据库连接URL(看数据库名是否正确),(比如我的就是用户名密码是root,但是项目设置的是remain)。
3、数据库连接驱动包不正确、不匹配,或者甚至没有。 检查lib目录下是否有对应数据库的jar包。在以上操作完成之后重启电脑看看有没有解决问题,如果没有解决问题,建议请专业的工作人员检测维修。
扩展资料:
出现这种情况的原因还有:
1、你的配置文件数据库用户名或者密码错误。
2、你的数据库地址写错了。
3、jar包少了,可能hibernate的包少了,也可能少了数据库驱动。
4、数据库服务没打开。
1、你的配置文件数据库用户名或者密码错误。
2、你的数据库地址写错了。
3、jar包少了,可能hibernate的包少了,也可能少了数据库驱动。
4、数据库服务没打开。
非常明显,没有获取到连接,也就没有获取到sessionfactory。请检查配置是否正确 。