0 0

Hibernate保持session时出错(还有控制台显示发送的SQL也显示不了)5

控制台:14-07-17 13:45:32  INFO Environment:509 - Hibernate 3.2.2
14-07-17 13:45:32  INFO Environment:542 - hibernate.properties not found
14-07-17 13:45:32  INFO Environment:676 - Bytecode provider name : cglib
14-07-17 13:45:32  INFO Environment:593 - using JDK 1.4 java.sql.Timestamp handling
14-07-17 13:45:32  INFO Configuration:1426 - configuring from resource: /hibernate.cfg.xml
14-07-17 13:45:32  INFO Configuration:1403 - Configuration resource: /hibernate.cfg.xml
14-07-17 13:45:32  INFO Configuration:553 - Reading mappings from resource : com/exe/hib/bean/Student.hbm.xml
14-07-17 13:45:32  INFO HbmBinder:300 - Mapping class: com.exe.hib.bean.Student -> stu
14-07-17 13:45:32  INFO Configuration:1541 - Configured SessionFactory: null
14-07-17 13:45:33  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
14-07-17 13:45:33  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 20
14-07-17 13:45:33  INFO DriverManagerConnectionProvider:45 - autocommit mode: false
14-07-17 13:45:33  INFO DriverManagerConnectionProvider:80 - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/test
14-07-17 13:45:33  INFO DriverManagerConnectionProvider:86 - connection properties: {user=root, password=****}
14-07-17 13:45:34  INFO SettingsFactory:89 - RDBMS: MySQL, version: 5.0.27-community-nt
14-07-17 13:45:34  INFO SettingsFactory:90 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.11 ( $Date: 2005-09-21 18:20:03 +0000 (Wed, 21 Sep 2005) $, $Revision: 4287 $ )
14-07-17 13:45:34  INFO Dialect:152 - Using dialect: org.hibernate.dialect.MySQLDialect
14-07-17 13:45:34  INFO TransactionFactoryFactory:31 - Using default transaction strategy (direct JDBC transactions)
14-07-17 13:45:34  INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
14-07-17 13:45:34  INFO SettingsFactory:143 - Automatic flush during beforeCompletion(): disabled
14-07-17 13:45:34  INFO SettingsFactory:147 - Automatic session close at end of transaction: disabled
14-07-17 13:45:34  INFO SettingsFactory:154 - JDBC batch size: 15
14-07-17 13:45:34  INFO SettingsFactory:157 - JDBC batch updates for versioned data: disabled
14-07-17 13:45:34  INFO SettingsFactory:162 - Scrollable result sets: enabled
14-07-17 13:45:34  INFO SettingsFactory:170 - JDBC3 getGeneratedKeys(): enabled
14-07-17 13:45:34  INFO SettingsFactory:178 - Connection release mode: auto
14-07-17 13:45:34  INFO SettingsFactory:202 - Maximum outer join fetch depth: 2
14-07-17 13:45:34  INFO SettingsFactory:205 - Default batch fetch size: 1
14-07-17 13:45:34  INFO SettingsFactory:209 - Generate SQL with comments: disabled
14-07-17 13:45:34  INFO SettingsFactory:213 - Order SQL updates by primary key: disabled
14-07-17 13:45:34  INFO SettingsFactory:382 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
14-07-17 13:45:34  INFO ASTQueryTranslatorFactory:24 - Using ASTQueryTranslatorFactory
14-07-17 13:45:34  INFO SettingsFactory:221 - Query language substitutions: {}
14-07-17 13:45:34  INFO SettingsFactory:226 - JPA-QL strict compliance: disabled
14-07-17 13:45:34  INFO SettingsFactory:231 - Second-level cache: enabled
14-07-17 13:45:34  INFO SettingsFactory:235 - Query cache: disabled
14-07-17 13:45:34  INFO SettingsFactory:369 - Cache provider: org.hibernate.cache.NoCacheProvider
14-07-17 13:45:34  INFO SettingsFactory:250 - Optimize cache for minimal puts: disabled
14-07-17 13:45:34  INFO SettingsFactory:259 - Structured second-level cache entries: disabled
14-07-17 13:45:34  INFO SettingsFactory:286 - Statistics: disabled
14-07-17 13:45:34  INFO SettingsFactory:290 - Deleted entity synthetic identifier rollback: disabled
14-07-17 13:45:34  INFO SettingsFactory:305 - Default entity-mode: pojo
14-07-17 13:45:34  INFO SettingsFactory:309 - Named query checking : enabled
14-07-17 13:45:34  INFO SessionFactoryImpl:161 - building session factory
14-07-17 13:45:34  INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
ccccccccc
14-07-17 13:45:34  WARN JDBCExceptionReporter:77 - SQL Error: 1064, SQLState: 42000
14-07-17 13:45:34 ERROR JDBCExceptionReporter:78 - 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 '.stu (stu_name, stu_sex, stu_age, stu_address, stu_description) values ('a', '?'' at line 1
org.hibernate.exception.SQLGrammarException: could not insert: [com.exe.hib.bean.Student]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2154)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2634)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at com.exe.hib.daoImpl.StudentDaoImpl.createStu(StudentDaoImpl.java:30)
at com.exe.hib.bussinessManage.BM.main(BM.java:22)
Caused by: java.sql.SQLException: 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 '.stu (stu_name, stu_sex, stu_age, stu_address, stu_description) values ('a', '?'' at line 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2926)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2978)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:933)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1162)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1079)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1064)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:73)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
... 17 more
     BM:
          public class BM {
public static void main(String[] args) {
Student  stu=new Student();
      stu.setStuName("dddddd");
      // System.out.println("execute  to here now!");
      stu.setStuSex("女");
      stu.setStuName("a");
      stu.setStuAddress("aa");
      stu.setStuAge(12);
      stu.setStuDescription("嗷嗷嗷");
      new StudentDaoImpl().createStu(stu);
}
    daoImpl:
package com.exe.hib.daoImpl;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.exe.hib.bean.Student;
import com.exe.hib.dao.StudentDao;
import com.exe.hib.util.HibernateUtil;

/**
*@author:
*@version:
*@date:
*@description:
*/
public class StudentDaoImpl implements StudentDao {
static Session session = null;

public   void createStu(Student stu) {
// TODO Auto-generated method stub
try{
//System.out.println("ccccccccc");
session=HibernateUtil.currentSession();
//

Transaction tx=session.beginTransaction();
session.save(stu);
tx.commit();
}catch(HibernateException he){
he.printStackTrace();
}finally{
HibernateUtil.closeSession(session);
}
}

public void deleteStu(int id) {
// TODO Auto-generated method stub

}

public List queryStu(int id) {
// TODO Auto-generated method stub
return null;
}

public void updateStu(Student stu) {
// TODO Auto-generated method stub

}

}
 


bean:package com.exe.hib.bean;

/**
* Student entity. @author MyEclipse Persistence Tools
*/

public class Student implements java.io.Serializable {

// Fields

private Integer stuId;
private String stuName;
private String stuSex;
private Integer stuAge;
private String stuAddress;
private String stuDescription;

// Constructors

/** default constructor */
public Student() {
}

/** minimal constructor */
public Student(Integer stuId) {
this.stuId = stuId;
}

/** full constructor */
public Student(Integer stuId, String stuName, String stuSex, Integer stuAge,
String stuAddress, String stuDescription) {
this.stuId = stuId;
this.stuName = stuName;
this.stuSex = stuSex;
this.stuAge = stuAge;
this.stuAddress = stuAddress;
this.stuDescription = stuDescription;
}

// Property accessors

public Integer getStuId() {
return this.stuId;
}

public void setStuId(Integer stuId) {
this.stuId = stuId;
}

public String getStuName() {
return this.stuName;
}

public void setStuName(String stuName) {
this.stuName = stuName;
}

public String getStuSex() {
return this.stuSex;
}

public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}

public Integer getStuAge() {
return this.stuAge;
}

public void setStuAge(Integer stuAge) {
this.stuAge = stuAge;
}

public String getStuAddress() {
return this.stuAddress;
}

public void setStuAddress(String stuAddress) {
this.stuAddress = stuAddress;
}

public String getStuDescription() {
return this.stuDescription;
}

public void setStuDescription(String stuDescription) {
this.stuDescription = stuDescription;
}

}


映射文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.exe.hib.bean.Student" table="stu" schema="dbo" catalog="test">
        <id name="stuId" type="java.lang.Integer">
            <column name="stu_Id" />
            <generator class="identity"></generator>
        </id>
        <property name="stuName" type="java.lang.String">
            <column name="stu_name" length="10" />
        </property>
        <property name="stuSex" type="java.lang.String">
            <column name="stu_sex" length="10" />
        </property>
        <property name="stuAge" type="java.lang.Integer">
            <column name="stu_age"  length="20" />
        </property>
        <property name="stuAddress" type="java.lang.String">
            <column name="stu_address" length="20" />
        </property>
        <property name="stuDescription" type="java.lang.String">
            <column name="stu_description" length="50" />
        </property>
    </class>
</hibernate-mapping>
cfg:
       <?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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
     <property name="show_sql">ture</property>
     <property name="format_sql">false</property> 
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">

jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
     

<mapping resource="com/exe/hib/bean/Student.hbm.xml" />

</session-factory>

</hibernate-configuration>


  谢谢!!
  
2014年7月17日 13:54

2个答案 按时间排序 按投票排序

0 0

兄弟,这个错误很明显哦

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 '.stu (stu_name, stu_sex, stu_age, stu_address, stu_description) values ('a', '?'' at line 1

2014年7月20日 10:30
0 0

从错误里面看 应该是你插入的 sex类型错
你保存数据库里面的性别是 女

你看你下数据里面定义的性别是否varchar类型

2014年7月17日 23:47

相关推荐

    Java常见面试题208道.docx

    115.hibernate 中如何在控制台查看打印的 sql 语句? 116.hibernate 有几种查询方式? 117.hibernate 实体类可以被定义为 final 吗? 118.在 hibernate 中使用 Integer 和 int 做映射有什么区别? 119.hibernate 是...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    0.1 我适合不适合编程 2 0.2 走出象牙塔 4 0.3 学习Java,应该如此疯狂 7 第1章 经典Java EE应用和开发环境 9 1.1 经典Java EE应用概述 10 1.1.1 Java EE 6相关规范 10 1.1.2 经典Java EE应用的分层模型 11 1.1.3 ...

    java源码包---java 源码 大量 实例

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包2

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包3

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包4

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    JAVA上百实例源码以及开源项目源代码

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    springboot参考指南

    使用Hibernate初始化数据库 iii. 68.3. 使用Spring JDBC初始化数据库 iv. 68.4. 初始化Spring Batch数据库 v. 68.5. 使用一个高级别的数据迁移工具 i. 68.5.1. 启动时执行Flyway数据库迁移 ii. 68.5.2. 启动时执行...

Global site tag (gtag.js) - Google Analytics