org.hibernate.exception.SQLGrammarException: could not execute statement
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 StudentTest.destory(StudentTest.java:45)
?? ?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:497)
?? ?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:50)
?? ?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 'GROUP, SID) values ('張三豐', '男', '15級', '軟件工程', '軟件組', 3)' 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:422)
?? ?at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
?? ?at com.mysql.jdbc.Util.getInstance(Util.java:386)
?? ?at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
?? ?at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4190)
?? ?at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4122)
?? ?at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570)
?? ?at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731)
?? ?at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2818)
?? ?at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2157)
?? ?at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2460)
?? ?at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2377)
?? ?at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2361)
?? ?at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:133)
?? ?... 37 more
2016-12-11
解決了group是關鍵字。。。醉了
2016-12-11
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
?? ??? ?"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
?? ??? ?"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
?? ?<session-factory>
?? ??? ?<property name="connection.username">root</property>
?? ??? ?<property name="connection.password">123456</property>
?? ??? ?<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
?? ??? ?<property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8</property>
?? ??? ?<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
?? ??? ?<property name="show_sql">true</property>
?? ??? ?<property name="format_sql">true</property>
?? ??? ?<property name="hbm2ddl.auto">create</property>
?? ??? ?<mapping resource="com/maker/po/Student.hbm.xml" />
?? ?</session-factory>
</hibernate-configuration>?? ?
2016-12-11
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.maker.po.Student;
//測試類
public class StudentTest {
?? ?private SessionFactory sessionFactory;
?? ?private Session session;
?? ?private Transaction transaction;
?? ?@Before
?? ?public void init() {
?? ??? ?// 創(chuàng)建配置對象
?? ??? ?Configuration config = new Configuration().configure();
?? ??? ?// 創(chuàng)建服務注冊對象
?? ??? ?ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
?? ??? ??? ??? ?.applySettings(config.getProperties()).buildServiceRegistry();
?? ??? ?// 創(chuàng)建會話工廠對象
?? ??? ?sessionFactory = config.buildSessionFactory(serviceRegistry);
?? ??? ?// 創(chuàng)建會話對象
?? ??? ?session = sessionFactory.openSession();
?? ??? ?// 開啟事務
?? ??? ?transaction = session.beginTransaction();
?? ?}
?? ?@Test
?? ?public void testSaveStudents() {
?? ??? ?// 生成學生對象
?? ??? ?Student s = new Student(3, "張三豐", "男", "15級", "軟件工程", "軟件組");
?? ??? ?session.save(s);// 保存對象進入數(shù)據(jù)庫
?? ?}
?? ?
?? ?@After
?? ?public void destory() {
?? ??? ?transaction.commit();// 提交事務
?? ??? ?session.close();// 關閉會話
?? ??? ?sessionFactory.close();// 關閉會話工廠
?? ?}
}
2016-12-11
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-12-11 11:12:21 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
??? <class name="com.maker.po.Student" table="STUDENT">
??????? <id name="sid" type="int" access="field">
??????????? <column name="SID" />
??????????? <generator class="assigned" />
??????? </id>
??????? <property name="name" type="java.lang.String" access="field">
??????????? <column name="NAME" />
??????? </property>
??????? <property name="gender" type="java.lang.String" access="field">
??????????? <column name="GENDER" />
??????? </property>
??????? <property name="nianji" type="java.lang.String" access="field">
??????????? <column name="NIANJI" />
??????? </property>
??????? <property name="zhuanye" type="java.lang.String" access="field">
??????????? <column name="ZHUANYE" />
??????? </property>
??????? <property name="group" type="java.lang.String" access="field">
??????????? <column name="GROUP" />
??????? </property>
??? </class>
</hibernate-mapping>
2016-12-11
package com.maker.po;
public class Student {
?? ?private int sid;
?? ?private String name;
?? ?private String gender;
?? ?private String nianji;
?? ?private String zhuanye;
?? ?private String group;
?? ?
?? ?public Student(){
?? ??? ?
?? ?}
?? ?public Student(int sid,String name, String gender, String nianji, String zhuanye,
?? ??? ??? ?String group) {
?? ??? ?super();
?? ??? ?this.sid=sid;
?? ??? ?this.name = name;
?? ??? ?this.gender = gender;
?? ??? ?this.nianji = nianji;
?? ??? ?this.zhuanye = zhuanye;
?? ??? ?this.group = group;
?? ?}
?? ?@Override
?? ?public String toString() {
?? ??? ?return "Student [sid=" + sid + ", name=" + name + ", gender=" + gender
?? ??? ??? ??? ?+ ", nianji=" + nianji + ", zhuanye=" + zhuanye + ", group="
?? ??? ??? ??? ?+ group + "]";
?? ?}
?? ?
?? ?
}