Hibernate的查询异常!。。。

我的java程序代码:

Transaction ts=null;
Session session=null;
try{
session=HibernateSessionFactory.getCurrentSession();
ts=session.beginTransaction();
int id1=id.intValue();
System.out.println("id1"+id1);
Query query=session.createQuery("From Folder as f where f.id=1");
// query.setInteger(0, id1);
List list=query.list();
System.out.println("size"+list.size());
Folder folder=(Folder)list.get(0);
folder.setName(albumname);
folder.setDesc(albumdsc);

session.save(folder);
ts.commit();


========================他跑出的异常。。。。。。。。。。


org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:70)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:137)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
at com.woshow.photostudio.ylbo.ViewAlbums.rename(ViewAlbums.java:37)
at com.yourcompany.struts.action.AlbumrenameAction.execute(AlbumrenameAction.java:45)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
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:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
[color=red]Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc='qwe', position=null, cover_file_id=null where id=1' at line 1[/color]
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1103)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:853)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:174)
... 39 more
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了演示Hibernate应用,我们需要先创建一个JavaBean类,用来映射Teacher表的字段信息。可以参考以下代码: ```java @Entity @Table(name="Teacher") public class Teacher { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Column(name="name") private String name; @Column(name="age") private int age; // 省略getter和setter方法 } ``` 接下来,我们可以编写一个JSP文件来测试Hibernate的插入功能。可以参考以下代码: ```jsp <%@ page import="org.hibernate.Session,org.hibernate.Transaction,org.hibernate.boot.registry.StandardServiceRegistryBuilder,org.hibernate.cfg.Configuration,java.util.List,com.example.Teacher" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>Hibernate测试</title> </head> <body> <% Configuration configuration = new Configuration(); configuration.configure(); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); Session session = configuration.buildSessionFactory(builder.build()).openSession(); Transaction tx = null; try { tx = session.beginTransaction(); for(int i=1; i<=10; i++) { Teacher teacher = new Teacher(); teacher.setName("Teacher " + i); teacher.setAge(30 + i); session.save(teacher); } tx.commit(); out.println("Hello,HibernateHibernate测试成功!"); } catch (Exception e) { if(tx != null) { tx.rollback(); } throw e; } finally { session.close(); } %> </body> </html> ``` 在这个JSP文件中,我们先通过Configuration对象加载Hibernate的配置文件,然后创建SessionFactory对象和Session对象。接着,我们通过Transaction对象开启事务,并循环插入10条记录到Teacher表中。如果执行成功则提交事务,输出“Hello,HibernateHibernate测试成功!”;如果出现异常则回滚事务,并抛出异常信息。最后,我们关闭Session对象。 需要注意的是,在实际开发中,我们不应该将数据库操作逻辑写在JSP文件中,而是应该把它们封装在Service层或DAO层中,提高代码的可维护性和可重用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值