dao.CountTDAO.update(CountTDAO.java:21)
我觉得是你程序的问题。
我觉得是你程序的问题。
解决方案 »
- Struts2 json配置
- 安装axis2插件 报错 bad version number in .class file
- org.hibernate.MappingException: Unknown entity: 运行出异常 大家帮帮忙 怎么解决啊
- 初学SSH的问题
- B/S和C/S结构的结合使用设计的新思路,欢迎大家测试Demo.[2007-8-21]
- 求助:weblogic8.1中的一个问题,急?????
- 请高手指点,Hibernate 同一表自身一对一关系的配置错误?
- apache无缘无故死掉
- 在出错处理页面中,怎么捕捉session超时引起的错误?
- 请各位大虾,有用过struts的datasource的,进来指点一下,谢谢了。(内详)
- SOS 一个简单的问题困扰我一天,No action instance for path /tes could be created
- 求JAVA学习资料,详见帖子,抢分啊,两个帖子啊
WARN [http-80-Processor22] (JDBCExceptionReporter.java:77) - SQL Error: 17008, SQLState: null
ERROR [http-80-Processor22] (JDBCExceptionReporter.java:78) - 关闭的连接
ERROR [http-80-Processor22] (StandardWrapperValve.java:253) - Servlet.service() for servlet jsp threw exception
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2214)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
at org.hibernate.loader.Loader.list(Loader.java:2090)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at dao.ContentTDAO.findbyDemand(ContentTDAO.java:193)
at dao.ContentTDAO.findViewByDemand(ContentTDAO.java:175)
at org.apache.jsp.impdoc_jsp._jspService(impdoc_jsp.java:130)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
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.valves.AccessLogValve.invoke(AccessLogValve.java:541)
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: 关闭的连接
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleConnection.privatePrepareStatement(OracleConnection.java:982)
at oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection.java:889)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:415)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1538)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2211)
... 29 more可以肯定不是dao.ContentTDAO的问题,因为别的类也会有这种错误,我只是摘了日志的部分贴了出来。
下面是我的hibernate建立连接的类和类ContentTDAO,大家帮忙看看有没有什么问题。
public class Base { private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static Configuration configuration = new Configuration();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION; private Base() {
}
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
} return session;
} public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null); if (session != null) {
session.close();
}
}
public static void setConfigFile(String configFile) {
Base.configFile = configFile;
sessionFactory = null;
}
public static Configuration getConfiguration() {
return configuration;
}}public class ContentTDAO {
public void save(ContentT content) { Session session = Base.getSession();
Transaction tran = session.beginTransaction();
session.save(content);
try {
tran.commit();
} catch (Exception e) {
if (tran != null) {
tran.rollback();
}
} finally {
session.close();
}
} public void delete(ContentT content) { Session session = Base.getSession();
Transaction tran = session.beginTransaction();
session.delete(content);
try {
tran.commit();
} catch (Exception e) {
tran.rollback();
} finally {
session.close();
}
} public List findbyColumnId(Long id) {
return this.findbyProperty("columnid", id);
} public List findbyProperty(String property, Object value) { Session session = Base.getSession();
try {
Query query = session.createQuery("from ContentT as c where c."
+ property + "=" + value);
List list1 = query.list(); return list1;
} finally {
session.close();
}
} public void update(ContentT content) { Session session = Base.getSession();
Transaction tran = session.beginTransaction();
session.update(content);
try {
tran.commit();
} catch (Exception e) {
tran.rollback();
} finally {
session.close();
}
} public ContentT findbyId(Long id) { Session session = Base.getSession();
try {
Iterator it = session.createQuery(
"from ContentT as c where c.contentid=" + id).iterate();
if (it.hasNext()) {
ContentT con = (ContentT) it.next();
return con;
} else
return null;
} finally {
session.close();
}
}
public List findbyExample(ContentT example) { Session session = Base.getSession();
try {
Criteria criteria = session.createCriteria(ContentT.class);
criteria.add(Example.create(example));
criteria.addOrder(Order.desc("createtime"));
List list1 = criteria.list();
return list1;
} finally {
session.close();
} }
public int getCount(ContentT exp) {
return findbyExample(exp).size();
}
}
这句话Base.getSession(); 中base的定义和getSession()方法贴上来。
按错误说是你,在执行语句前,先关闭了连接,所以会报could not execute query 错,你在检查一下。
应该是你程序写的有问题。还有件事,你写这个程序的时候没测试吗?另外,是每次都这样,还是有时会抱错。
我现在也在用oracle9怎么没见到。