大家?guī)兔纯茨莾撼鲥e了?
public? void testWriteBlob() throws Exception{
?? ??? ?Students? s = new Students( 1,"王帥","男",new Date(),"天堂" );
?? ??? ?//先獲得照片文件
?? ??? ?File f = new File("g:"+File.separator+"girl.jpg");
?? ??? ?//獲得照片文件的輸入流
?? ??? ?InputStream input = new FileInputStream(f);
?? ??? ?//創(chuàng)建一個Blob對象
?? ??? ?Blob image? = Hibernate.getLobCreator(session).createBlob(input, input.available());
?? ??? ?//設(shè)置照片屬性
?? ??? ?s.setPicture(image);
?? ??? ?//保存學(xué)生
?? ??? ?session.save(s);
?? ?}
???
運行結(jié)果org.hibernate.exception.SQLGrammarException: could not execute statement
?? ?at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
?? ?at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
?? ?at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
?? ?at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
?? ?at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:136)
?? ?at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:58)
?? ?at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3067)
?? ?at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3509)
?? ?at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88)
?? ?at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:377)
?? ?at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:369)
?? ?at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:286)
?? ?at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:339)
?? ?at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
?? ?at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234)
?? ?at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404)
?? ?at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
?? ?at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
?? ?at hibernate001.StudentsTest.destroy(StudentsTest.java:50)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?? ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?? ?at java.lang.reflect.Method.invoke(Method.java:498)
?? ?at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
?? ?at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
?? ?at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
?? ?at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:36)
?? ?at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
?? ?at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
?? ?at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
?? ?at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
?? ?at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
?? ?at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
?? ?at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
?? ?at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
?? ?at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
?? ?at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
?? ?at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
?? ?at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
?? ?at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '?潞?0\0孉`XF哷\0??蘚0f\03\0??躶???蘚0f\03\0?侴&?耩牡?`0' at line 1
?? ?at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
?? ?at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
?? ?at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
?? ?at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
?? ?at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
?? ?at com.mysql.jdbc.Util.getInstance(Util.java:387)
?? ?at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:942)
?? ?at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
?? ?at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
?? ?at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
?? ?at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
?? ?at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
?? ?at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
?? ?at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
?? ?at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
?? ?at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
?? ?at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
?? ?at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:133)
?? ?... 37 more
2016-08-30
中文亂碼了,項目設(shè)置為utf-8,數(shù)據(jù)庫連接的url設(shè)置為utf-8,數(shù)據(jù)庫設(shè)置為utf-8,三個統(tǒng)一就不會錯了。
2016-08-01
或者你mysql版本太低了,好像要5.0還是5.5或以上吧
2016-07-31
提示是:mysql語法錯誤?
你用的jdbc-mysql版本太低了吧