首页 > 学院 > 开发设计 > 正文

spring+hibernate查询操作时出现的一个错误

2019-11-08 02:47:58
字体:
来源:转载
供稿:网友

新手想记录下,大神请喷。

我用java代码写了一个查询操作,然后输出到jsp页面上。

当我进入jsp页面时,出现了500错误,而控制台就显示这样的错误

org.sPRingframework.transaction.CannotCreateTransactionException: Could not open Hibernate session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connectionat org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:440)at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)at org.springframework.transaction.interceptor.TransactionaspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)at com.cjc.dao.UserDAO$$EnhancerByCGLIB$$fe1f41bd.findAll(<generated>)at com.cjc.action.action.doPost(action.java:35)at com.cjc.action.action.doGet(action.java:25)at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at org.apache.catalina.core.applicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.valves.accessLogValve.invoke(AccessLogValve.java:956)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:744)Caused by: org.hibernate.exception.GenericJDBCException: Could not open connectionat org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:304)at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1396)at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:399)... 30 moreCaused by: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driverof class '' for connect URL 'jdbc:MySQL://localhost:3306/db'at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:281)at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)... 35 moreCaused by: java.sql.SQLException: No suitable driverat java.sql.DriverManager.getDriver(DriverManager.java:278)at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)... 40 more

红色标注的因为,翻译过来就是“无法打开hibernate会话事务”

因为都是照着视频里的代码抄,我也不知道错在哪里。

就连applicationContext.xml文件都一模一样。

然后我百度,大部分都是说无法连接数据库.

数据库服务也没关,账号密码,端口号也都正确。

然后我就仔细的看了一下错误,发现不止一个错误,我都是习惯直接看第一行错误。

看到jdbc driver,我就想着是不是少了驱动属性。

之前是这样的

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="url" value="jdbc:mysql://localhost:3306/db"></property><property name="username" value="root"></property><property name="passWord" value="root"></property></bean>

加了驱动后就是这样

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">       <property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/db"></property><property name="username" value="root"></property><property name="password" value="root"></property></bean>

然后就成功运行,把数据显示在jsp页面上了.

但是我还是有疑惑。为什么会先出现“无法打开hibernate会话事务”.

求解答。。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表