现在出现新的错误了,可以拿到值,也可以显示.但如果查询出来的记录数大于 1 的话就会出错!错误如下: http-8080-Processor24 WARN - SQL Error: 0, SQLState: 08007 http-8080-Processor24 ERROR - [Microsoft][SQLServer JDBC Driver]Can't start a cloned connection while in manual transaction mode. http-8080-Processor24 WARN - SQL Error: 0, SQLState: 08007 http-8080-Processor24 ERROR - [Microsoft][SQLServer JDBC Driver]Can't start a cloned connection while in manual transaction mode. http-8080-Processor24 INFO - Error performing load command org.hibernate.exception.JDBCConnectionException: could not load an entity: [com.lichen.infocenter.hibernate.mapping.Authors#427-17-2319] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:66) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.loadEntity(Loader.java:1359) at org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:116) at org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:101) at org.hibernate.persister.entity.BasicEntityPersister.load(BasicEntityPersister.java:2471) at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:351) at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:332) at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:113) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:75) at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:643) at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:59) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:84) at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:134) at com.lichen.infocenter.hibernate.mapping.Authors$$EnhancerByCGLIB$$a380a89c.getAuLname(<generated>) at com.lichen.infocenter.hibernate.dao.DAOFactory.search(DAOFactory.java:68) at com.lichen.infocenter.struts.action.ShowAction.execute(ShowAction.java:60) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Can't start a cloned connection while in manual transaction mode. at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.base.BaseConnection.getImplConnection(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.getImplConnection(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.getImplStatement(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.preProcessSQL(Unknown Source) at com.microsoft.jdbc.base.BasePreparedStatement.<init>(Unknown Source) at com.microsoft.jdbc.base.BaseConnection.prepareStatement(Unknown Source) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:396) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:334) at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:88) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1162) at org.hibernate.loader.Loader.doQuery(Loader.java:390) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218) at org.hibernate.loader.Loader.loadEntity(Loader.java:1345) ... 34 more
问题解决了!把 Iterator it = query.iterate(); 改成 List list=query.list();就行了,谢谢各位了!
<logic:iterate id="result" name="result">
<tr>
<td><bean:write name="search" property="auId"/></td>
<td><bean:write name="search" property="auLname"/></td>
<td><bean:write name="search" property="auLname"/></td>
<td><bean:write name="search" property="phone"/></td>
<td><bean:write name="search" property="address"/></td>
<td><bean:write name="search" property="city"/></td>
<td><bean:write name="search" property="zip"/></td>
</tr>
</logic:iterate>异常是:Cannot find bean in any scope
logic:iterate --id里是你定义的一个变量名,name里是你所设置的属性名
这时内部的bean:write name里就应该添你刚才定义的变量名了!jsp代码:
<logic:iterate id="student" name="result">
<tr>
<td><bean:write name="student" property="auId"/></td>
<td><bean:write name="student" property="auLname"/></td>
<td><bean:write name="student" property="auLname"/></td>
<td><bean:write name="student" property="phone"/></td>
<td><bean:write name="student" property="address"/></td>
<td><bean:write name="student" property="city"/></td>
<td><bean:write name="student" property="zip"/></td>
</tr>
</logic:iterate>
<logic:iterate id="result" name="result">
<tr>
<td><bean:write name="search" property="auId"/></td>
<td><bean:write name="search" property="auLname"/></td>
<td><bean:write name="search" property="auLname"/></td>
<td><bean:write name="search" property="phone"/></td>
<td><bean:write name="search" property="address"/></td>
<td><bean:write name="search" property="city"/></td>
<td><bean:write name="search" property="zip"/></td>
</tr>
</logic:iterate>
----------------------
<logic:iterate id="result" name="result">这里定义的id值相当于一个for循环的临时对象变量,就是取result这个list里面的某个,相当于list.get(i)返回的对象所以你后面<bean:write要显示的是这个临时对象变量内包含的值就是<bean:write name="result" property="" />这里要注意的是<logic:iterate 内的id也就是定义临时变量名字最好不要跟其他的重名
http-8080-Processor24 WARN - SQL Error: 0, SQLState: 08007
http-8080-Processor24 ERROR - [Microsoft][SQLServer JDBC Driver]Can't start a cloned connection while in manual transaction mode.
http-8080-Processor24 WARN - SQL Error: 0, SQLState: 08007
http-8080-Processor24 ERROR - [Microsoft][SQLServer JDBC Driver]Can't start a cloned connection while in manual transaction mode.
http-8080-Processor24 INFO - Error performing load command
org.hibernate.exception.JDBCConnectionException: could not load an entity: [com.lichen.infocenter.hibernate.mapping.Authors#427-17-2319]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1359)
at org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:116)
at org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:101)
at org.hibernate.persister.entity.BasicEntityPersister.load(BasicEntityPersister.java:2471)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:351)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:332)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:113)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:75)
at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:643)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:59)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:84)
at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:134)
at com.lichen.infocenter.hibernate.mapping.Authors$$EnhancerByCGLIB$$a380a89c.getAuLname(<generated>)
at com.lichen.infocenter.hibernate.dao.DAOFactory.search(DAOFactory.java:68)
at com.lichen.infocenter.struts.action.ShowAction.execute(ShowAction.java:60)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Can't start a cloned connection while in manual transaction mode.
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.getImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.getImplStatement(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.preProcessSQL(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.<init>(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:396)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:334)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:88)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1162)
at org.hibernate.loader.Loader.doQuery(Loader.java:390)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1345)
... 34 more