今天朋友叫俺去幫忙調(diào)一下程序,是Hibernate+MySql的問(wèn)題,可以向數(shù)據(jù)庫(kù)中插入數(shù)據(jù),但是在查詢(xún)的時(shí)候,拋出如下異常:
org.hibernate.exception.GenericJDBCException: could not execute query
?at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
?at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
?at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
?at org.hibernate.loader.Loader.doList(Loader.java:1596)
?at org.hibernate.loader.Loader.list(Loader.java:1577)
?at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
?at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
?at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
?at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
?at com.lk.yk.hibernate.operation.TypeOperation.SelectAll(TypeOperation.java:55)
?at com.lk.yk.hibernate.operation.TypeOperation.main(TypeOperation.java:84)
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
java.io.EOFException
?at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
?at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
?at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
?at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
?at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
?at com.mysql.jdbc.Connection.execSQL(Connection.java:3176)
?at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153)
?at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1266)
?at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:120)
?at org.hibernate.loader.Loader.getResultSet(Loader.java:1272)
?at org.hibernate.loader.Loader.doQuery(Loader.java:391)
?at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
?at org.hibernate.loader.Loader.doList(Loader.java:1593)
?at org.hibernate.loader.Loader.list(Loader.java:1577)
?at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
?at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
?at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
?at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
?at com.lk.yk.hibernate.operation.TypeOperation.SelectAll(TypeOperation.java:55)
?at com.lk.yk.hibernate.operation.TypeOperation.main(TypeOperation.java:84)
** END NESTED EXCEPTION **
Last packet sent to the server was 47 ms ago.
?at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2515)
?at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
?at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
?at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
?at com.mysql.jdbc.Connection.execSQL(Connection.java:3176)
?at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153)
?at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1266)
?at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:120)
?at org.hibernate.loader.Loader.getResultSet(Loader.java:1272)
?at org.hibernate.loader.Loader.doQuery(Loader.java:391)
?at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
?at org.hibernate.loader.Loader.doList(Loader.java:1593)
?... 7 more
Exception in thread "main" java.lang.NullPointerException
?at com.lk.yk.hibernate.operation.TypeOperation.main(TypeOperation.java:84)
??????這個(gè)異常,俺還是第一次碰到過(guò),看了看查詢(xún)方法,也沒(méi)有錯(cuò)呀,又重新試了一下,還不同樣的情況,看來(lái)朋友沒(méi)有誤報(bào),沒(méi)轍,誰(shuí)讓咱水平淺來(lái)呢,走人,到GOOGLE上逛去,一查說(shuō)是驅(qū)動(dòng)JAR不對(duì),google確實(shí)是好東西,一查就有,呵呵,那個(gè)舒服呀,問(wèn)朋友服務(wù)器是用的什么版本的MYSQL,說(shuō)是5.0的<其實(shí)不是5.0的>,俺就從網(wǎng)上下了一個(gè)相應(yīng)版本的JAR,呵呵,俺想這次可行了吧,呵呵,沒(méi)有想到,不成,還是不行。這下俺是徹底的沒(méi)轍了,水平淺,那咱找別人,又找了一個(gè)哥們過(guò)來(lái),三兩下,解決了,一問(wèn),只不過(guò)換了一個(gè)版本更底的JAR,我那個(gè)恨呀。
嘮叨這么多,不為別的,呵呵,俺只想在這里給自己敲一下警鐘,同樣是解決問(wèn)題,為什么別人能找到問(wèn)題所在,而咱找不到,應(yīng)該想想這個(gè)問(wèn)題,雖然工作經(jīng)驗(yàn)少,但這不應(yīng)該成為狡辯的理由,應(yīng)該深刻的反思一下......該去增強(qiáng)一下內(nèi)功了,
??????呵呵,不多說(shuō)了,走人,俺先反思,去練功去了,終有一天俺也會(huì)成為一個(gè)內(nèi)功深厚的武林高手的......