项目开发 中 的小收获

1、需要String类型转int类型

因为跟前端传的是JSON类型,所以收到的是String 类型, 而且向数据库里写也是varchar类型。 但是业务逻辑处理中要用的是int类型,我是这样处理的:

int tshan1=Integer.valueOf(shan)*(-1);
String tshan=Integer.valueOf(tshan1).toString();


2、get到了一个牛逼的技能,一键生出Property accessors  constructor 

http://jingyan.baidu.com/article/e73e26c0a1ac7d24adb6a781.html



3、fastJson按照某个字段有序的组装Json:

http://blog.csdn.net/u011410529/article/details/50235883


4、我收到了一个HttpServletRequest request,但是我自己是写了一个相当于“处理器”的servlet来接收这个HttpServletRequest request,不想要在处理器中直接解析这个request,所以开始我想把这个转化为HashMap:【http://blog.csdn.net/u012730299/article/details/45717365】。但是后来测试的时候一直有点问题,要指定这个Map的泛型?还是啥的。 我不想在自己定义的处理器中一个一个去解析request,再调用相应的函数传参执行,所以我就把这个request当成参数传递给了业务逻辑函数,在业务逻辑函数里面处理了它:

public String fun(HttpServletRequest request){
		//--------------------------------------------------------
		String tpassword=(String) request.getParameter("password");
		String tphone=(String) request.getParameter("phone");}

不过这个代码也不太好,后面有遇到传递过来的中文乱码的情况,还需要进一步处理,按照UTF-8的格式获取字符串。


5、修改数据库字段名:

>alter table 表名称 change 字段原名称 字段新名称字段类型 [是否允许非空

当时因为我这个设计数据库的时候有点儿着急,没有把某一个表的字段名定义成username,但是因为打包给Json的时候又要求这个键的名字,所以我就尝试着这么修改了数据库。 不过后来我发现改不了,用了Hibernate之后再改数据库,它会变成一个新增字段,原来数据库的这个uname还是被保留了下来,成了一个没有用的字段。【所以下一个vision的时候我又返工了...T-T...】


6、我觉得HIbernate如此神奇,能不能自动生成对应的web.xml文件呢?

http://bbs.csdn.net/topics/390910085?page=1

好嘛,像我这样,第一次点的太快,忘记打钩的又该怎么办?

http://bbs.csdn.net/topics/390891231

然后我就用了注解,现学现卖的给每一个函数前面都加上了@WebServlet.....

嗯,最后就是,没哟配置成功,跑不起来。 我就又默默的自己手动配了。 看来注解开发的学习要纳入我的学习计划中了!


7、在第一次局域网内测试的时候,3个小时没有查出来为什么不能通信......

atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

    atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

    atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

    atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)

    atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

    atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

    atorg.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)

    atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

    atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)

    atorg.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)

    atorg.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

    atorg.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)

    atorg.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)

    atorg.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    atjava.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    atjava.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    atjava.lang.Thread.run(Unknown Source)


最后发现居然是因为 Android 写成了 Andriod..... 真是想撞墙!!


8、总算是能够接收前端的消息了,但是一直都不能发消息:

28-Mar-2017 21:18:01.753 INFO[http-nio-8099-exec-7] org.hibernate.annotations.common.Version.<clinit>HCANN000001: Hibernate Commons Annotations {4.0.1.Final}

28-Mar-2017 21:18:01.773 INFO[http-nio-8099-exec-7] org.hibernate.Version.logVersion HHH000412: HibernateCore {4.1.4.Final}

28-Mar-2017 21:18:01.778 INFO[http-nio-8099-exec-7] org.hibernate.cfg.Environment.<clinit> HHH000206:hibernate.properties not found

28-Mar-2017 21:18:01.782 INFO[http-nio-8099-exec-7] org.hibernate.cfg.Environment.buildBytecodeProviderHHH000021: Bytecode provider name : javassist

28-Mar-2017 21:18:01.819 INFO[http-nio-8099-exec-7] org.hibernate.cfg.Configuration.configure HHH000043:Configuring from resource: /hibernate.cfg.xml

28-Mar-2017 21:18:01.820 INFO[http-nio-8099-exec-7]org.hibernate.cfg.Configuration.getConfigurationInputStream HHH000040:Configuration resource: /hibernate.cfg.xml

28-Mar-2017 21:18:01.957 INFO[http-nio-8099-exec-7] org.hibernate.cfg.Configuration.addResource HHH000221:Reading mappings from resource: com/Lily/dianer/DB/Userinfo.hbm.xml

28-Mar-2017 21:18:02.034 INFO[http-nio-8099-exec-7] org.hibernate.cfg.Configuration.addResource HHH000221:Reading mappings from resource: com/Lily/dianer/DB/Urecord.hbm.xml

28-Mar-2017 21:18:02.045 INFO[http-nio-8099-exec-7] org.hibernate.cfg.Configuration.doConfigure HHH000041:Configured SessionFactory: null

28-Mar-2017 21:18:02.195 INFO[http-nio-8099-exec-7]org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configureHHH000402: Using Hibernate built-in connection pool (not for production use!)

28-Mar-2017 21:18:02.195 INFO[http-nio-8099-exec-7] org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configureHHH000115: Hibernate connection pool size: 20

28-Mar-2017 21:18:02.196 INFO[http-nio-8099-exec-7]org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configureHHH000006: Autocommit mode: false

28-Mar-2017 21:18:02.197 INFO[http-nio-8099-exec-7]org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configureHHH000401: using driver [com.mysql.jdbc.Driver] at URL[jdbc:mysql://localhost:3306/pinsanapp]

28-Mar-2017 21:18:02.197 INFO[http-nio-8099-exec-7]org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configureHHH000046: Connection properties: {user=root, password=****}

28-Mar-2017 21:18:02.556 INFO[http-nio-8099-exec-7] org.hibernate.dialect.Dialect.<init> HHH000400:Using dialect: org.hibernate.dialect.MySQLDialect

28-Mar-2017 21:18:02.595 INFO[http-nio-8099-exec-7] org.hibernate.engine.transaction.internal.TransactionFactoryInitiator.initiateServiceHHH000399: Using default transaction strategy (direct JDBC transactions)

28-Mar-2017 21:18:02.603 INFO[http-nio-8099-exec-7]org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory.<init>HHH000397: Using ASTQueryTranslatorFactory

后来用myeclipse的时候发现有一个Errors: fastJson的包的路径不对.....

我真的是不想吐槽了。 Jar包真的搞得我心好累。而且日志上完全看不到什么问题。


9、死锁问题

三月 29, 2017 9:53:57下午 org.apache.catalina.core.StandardWrapperValve invoke

严重:Servlet.service() for servlet [CPU] in context with path [/AndroidpinsanApp]threw exception

org.hibernate.exception.LockAcquisitionException: Lock wait timeout exceeded; try restarting transaction

    atorg.hibernate.dialect.MySQLDialect$1.convert(MySQLDialect.java:392)

    atorg.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)

    atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)

    atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)

    atcom.sun.proxy.$Proxy14.executeUpdate(Unknown Source)

    atorg.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:56)

    atorg.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3016)

    atorg.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2918)

    atorg.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3247)

    atorg.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:140)

    atorg.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)

    atorg.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)

    atorg.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:276)

    atorg.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)

    atorg.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)

    atorg.hibernate.internal.SessionImpl.flush(SessionImpl.java:1214)

    atorg.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:403)

    atorg.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)

    atorg.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)

    atcom.Lily.dianer.doService.doHereGotoo.fun(doHereGotoo.java:73)

    atcom.Lily.dianer.servlet.CPU.doGet(CPU.java:58)

    atcom.Lily.dianer.servlet.CPU.doPost(CPU.java:74)

    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:646)

    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:727)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    atorg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

    atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

    atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)

    atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

    atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

    atorg.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)

    atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

    atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)

    atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)

    atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)

    atorg.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)

    atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    atjava.lang.Thread.run(Thread.java:744)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

    atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    atjava.lang.reflect.Constructor.newInstance(Constructor.java:526)

    atcom.mysql.jdbc.Util.handleNewInstance(Util.java:425)

    atcom.mysql.jdbc.Util.getInstance(Util.java:408)

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:951)

    atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)

    atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)

    atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)

    atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)

    atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)

    atcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)

    atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)

    atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)

    atcom.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)

    atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)

    atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    atjava.lang.reflect.Method.invoke(Method.java:606)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)

    ...41 more

 

 

 

严重:Servlet.service() for servlet [CPU] in context with path [/AndroidpinsanApp]threw exception

org.hibernate.exception.LockAcquisitionException: Lock wait timeout exceeded; try restarting transaction

    atorg.hibernate.dialect.MySQLDialect$1.convert(MySQLDialect.java:392)

    atorg.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)

    atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)

    atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)

    atcom.sun.proxy.$Proxy14.executeUpdate(Unknown Source)

    atorg.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:56)

    atorg.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3016)

    atorg.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2918)

    atorg.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3247)

    atorg.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:140)

    atorg.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)

    atorg.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)

    atorg.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:276)

    atorg.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)

    atorg.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)

    atorg.hibernate.internal.SessionImpl.flush(SessionImpl.java:1214)

    atorg.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:403)

    atorg.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)

    atorg.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)

    atcom.Lily.dianer.doService.doHereGotoo.fun(doHereGotoo.java:73)

    atcom.Lily.dianer.servlet.CPU.doGet(CPU.java:58)

    atcom.Lily.dianer.servlet.CPU.doPost(CPU.java:74)

    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:646)

    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:727)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    atorg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

    atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

    atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)

    atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

    atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

    atorg.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)

    atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

    atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)

    atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)

    atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)

    atorg.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)

    atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    atjava.lang.Thread.run(Thread.java:744)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

    atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    atjava.lang.reflect.Constructor.newInstance(Constructor.java:526)

    atcom.mysql.jdbc.Util.handleNewInstance(Util.java:425)

    atcom.mysql.jdbc.Util.getInstance(Util.java:408)

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:951)

    atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)

    atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)

    atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)

    atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)

    atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)

    atcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)

    atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)

    atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)

    atcom.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)

    atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)

    atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    atjava.lang.reflect.Method.invoke(Method.java:606)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)

    ...41 more

三月 29, 201710:35:59 下午org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

WARN: SQL Error: 1205, SQLState:40001

三月 29, 201710:35:59 下午org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

ERROR: Lock wait timeout exceeded;try restarting transaction

三月 29, 201710:35:59 下午org.apache.catalina.core.StandardWrapperValve invoke

严重:Servlet.service() for servlet [CPU] in context with path [/AndroidpinsanApp]threw exception

org.hibernate.exception.LockAcquisitionException: Lock wait timeout exceeded; try restarting transaction

    atorg.hibernate.dialect.MySQLDialect$1.convert(MySQLDialect.java:392)

    atorg.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)

    atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)

    atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)

    atcom.sun.proxy.$Proxy14.executeUpdate(Unknown Source)

    atorg.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:56)

    atorg.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3016)

    atorg.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2918)

    atorg.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3247)

    atorg.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:140)

    atorg.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)

    atorg.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)

    atorg.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:276)

    atorg.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)

    atorg.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)

    atorg.hibernate.internal.SessionImpl.flush(SessionImpl.java:1214)

    atorg.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:403)

    atorg.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)

    atorg.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)

    atcom.Lily.dianer.doService.doHereGotoo.fun(doHereGotoo.java:73)

    atcom.Lily.dianer.servlet.CPU.doGet(CPU.java:58)

    atcom.Lily.dianer.servlet.CPU.doPost(CPU.java:74)

    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:646)

    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:727)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    atorg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

    atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

    atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

    atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)

    atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

    atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

    atorg.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)

    atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

    atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)

    atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)

    atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)

    atorg.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)

    atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    atjava.lang.Thread.run(Thread.java:744)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

    atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    atjava.lang.reflect.Constructor.newInstance(Constructor.java:526)

    atcom.mysql.jdbc.Util.handleNewInstance(Util.java:425)

    atcom.mysql.jdbc.Util.getInstance(Util.java:408)

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:951)

    atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)

    atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)

    atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)

    atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)

    atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)

    atcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)

    atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)

    atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)

    atcom.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)

    atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)

    atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    atjava.lang.reflect.Method.invoke(Method.java:606)

    atorg.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)

    ... 41 more


上次说了,因为在同一个函数里面写了两个hql语句,一个是向数据库里面添加数据,一个是读。 我的想法是开启一个事务,增完之后close,再开启,再读出来,再close。 可能是因为java不是一个面向过程的语言吧! 不会按照我的想法来做,造成了数据库的死锁问题。  但是呢,Hibernate的几种锁问题我还没来得及研究,为了赶项目进度,我只能把这两个函数放到两个functio中,再在处理函数中调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值