user.java//定义属性
private String id;
private String username;
private String password;========================================
User.hbm.xml<class name="com.zs.bean.Users" table="user">
<id name="id" column="id" type="java.lang.String"><generator class="uuid.hex"/></id>
<property name="username" column="username" type="java.lang.String"></property>
<property name="password" column="password" type="java.lang.String"></property>
</class>=========================================create table user(
id varchar(255) not null primary key,
username varchar(255),
password varchar(255)
)数据库是POSTGRESQL 我是用pgAdmin工具创建的
============================================
applicationContext.xml<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/zs" />
<property name="username" value="postgres" />
<property name="password" value="admin" />
</bean>==============================================异常:后台没有异常:只是打印如下:
Hibernate: insert into user (username, password, id) values (?, ?, ?)
页面500错误:org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:615)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
root cause org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
root cause java.sql.BatchUpdateException: 批次处理 0 insert into user (username, password, id) values (44, 44, 2c9c04ed364cedad01364ceddf240001) 被中止,呼叫 getNextException 以取得原因。
org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2531)
---------------我就寻思自己连接下Postgresql,本人也知道可能是方言问题。但是用了好多确实没有解决掉。求助。
private String id;
private String username;
private String password;========================================
User.hbm.xml<class name="com.zs.bean.Users" table="user">
<id name="id" column="id" type="java.lang.String"><generator class="uuid.hex"/></id>
<property name="username" column="username" type="java.lang.String"></property>
<property name="password" column="password" type="java.lang.String"></property>
</class>=========================================create table user(
id varchar(255) not null primary key,
username varchar(255),
password varchar(255)
)数据库是POSTGRESQL 我是用pgAdmin工具创建的
============================================
applicationContext.xml<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/zs" />
<property name="username" value="postgres" />
<property name="password" value="admin" />
</bean>==============================================异常:后台没有异常:只是打印如下:
Hibernate: insert into user (username, password, id) values (?, ?, ?)
页面500错误:org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:615)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
root cause org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
root cause java.sql.BatchUpdateException: 批次处理 0 insert into user (username, password, id) values (44, 44, 2c9c04ed364cedad01364ceddf240001) 被中止,呼叫 getNextException 以取得原因。
org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2531)
---------------我就寻思自己连接下Postgresql,本人也知道可能是方言问题。但是用了好多确实没有解决掉。求助。
解决方案 »
- java.util.zip压缩包 解压问题
- flex 怎么用xml生成tree菜单??? 高手请进!!!!
- 最近,老大说准备接一两个关于portal的项目,望高手指点!
- struts2<s:tree>标签用法
- 只有用JBuilder2006自带的tomcat4.1才不报错,请各位帮帮忙!谢谢!
- 关于ECLIPSE导入工程,包找不到怎么回事
- xml出现 "Cannot find the declaration of element 'bindings'"问题,请问各位怎么解决?
- 看过JPetStore5.0(或者4.0)或者调试过它的请进来一下帮我解决几个问题,有点急,在先等回复
- 关于resin 3.0的虚拟主机配置问题
- 仿微信服务器~ 打造分布式高并发IM即时通讯服务器。内附openfire的简短分析。以及微信服务器的分析
- 【请教】HibernateDaoSupport与hibernateTemplate的区别
- org.springframework.validation.BindException: org.springframework.validation.Bea
而不是insert into user (username, password, id) values (44, 44, 2c9c04ed364cedad01364ceddf240001)吧username和password都应该是string的,不是int的。
<property name="dataSource" ref="dataSource"/> <!--数据源-->
<property name="mappingResources">
<list>
...
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql=false <!--是否打印Hibernate执行的sql-->
</value>
</property>
</bean>
从打印的SQL看没得问题。但是为什么会抛出语法错呢?是不是你的数据库中字段名与插入的不一致。
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>com/zs/bean/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<!--
<prop key="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect
</prop>
-->
<prop key="hibernate.dialect">
<!--
org.hibernate.dialect.Oracle9Dialect
org.hibernate.dialect.MySQLDialect
org.hibernate.dialect.Oracle9Dialect
-->
org.hibernate.dialect.PostgreSQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>我的sessionfactory
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.hibernate.auction">
<!-- MySQL
<class name="com.zs.bean.Users" table="user" catalog="zs">
<id name="id" column="id" type="int"><generator class="native"/></id>
<property name="username" column="username" type="java.lang.String"></property>
<property name="password" column="password" type="java.lang.String"></property>
</class>
-->
<!-- PostgreSQL 数据库 -->
<class name="com.zs.bean.Users" table="user">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native">
<param name="sequence"></param>
</generator>
</id>
<property name="username" column="username" type="java.lang.String"></property>
<property name="password" column="password" type="java.lang.String"></property>
</class>
<!-- Oracle 数据库 -->
<!-- start
<class name="com.zs.bean.Users" table="zz" schema="fitact">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment" />
</id>
<property name="username" type="string">
<column name="username" />
</property>
<property name="password" type="string">
<column name="password" />
</property>
</class>
-->
<!-- Oracle 数据库2 -->
<!-- start
<class name="com.zs.bean.Users" table="zz" schema="fitact">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native">
<param name="sequence">zz_sequence</param>
</generator>
</id>
<property name="username" type="string">
<column name="username" />
</property>
<property name="password" type="string">
<column name="password" />
</property>
</class>
end -->
</hibernate-mapping>