org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch updat hibernate 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不能执行JDBC的批量更新,你这样发帖子没人知道原因,得看看你的代码,贴出代码吧 代码是这样的:实体类:package com.test.entity;import java.sql.Date;import java.sql.Timestamp;public class Adm { private Integer id; private String name; private Integer age; private Double salary; private Boolean marry; private Date birthday; private Timestamp lastLoginTime; public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Timestamp getLastLoginTime() { return lastLoginTime; } public void setLastLoginTime(Timestamp lastLoginTime) { this.lastLoginTime = lastLoginTime; } public Boolean getMarry() { return marry; } public void setMarry(Boolean marry) { this.marry = marry; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; }}实体影射类:[code=html]<?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"><hibernate-mapping> <class name="com.test.entity.Adm" table="ADM"> <id name="id" type="java.lang.Integer" column="id"> <!-- 用来指明主键的生成方式 --> <generator class="sequence"> <param name="sequence">adm_seq</param> </generator> </id> <property name="name" type="java.lang.String" column="name" /> <property name="age" type="java.lang.Integer" column="age" /> <property name="salary" type="java.lang.Double" column="salary" /> <property name="birthday" type="java.sql.Date" column="birthday"></property> </class></hibernate-mapping>[/code]Hibernate主配置文件:<?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.url"> jdbc:oracle:thin:@192.168.1.120:1521:zyyw </property> <property name="connection.username">zyyw</property> <property name="connection.password">zyyw</property> <property name="connection.driver_class"> oracle.jdbc.OracleDriver </property> <!-- dialect方言,用于配置生成针对哪个数据库的SQL语句 --> <property name="dialect"> <!--方言类,Hibernate提供的,用于封装某种特定数据库的方言 --> org.hibernate.dialect.OracleDialect </property> <!-- 是否在控制台输出SQL --> <property name="show_sql">true</property> <!-- 是否格式化输出的SQL --> <property name="format_sql">true</property> <!-- 在配置文件中关联映射文件 --> <mapping resource="com/test/entity/Adm.hbm.xml" /> </session-factory></hibernate-configuration>测试类:package com.test.test;import java.sql.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;import com.test.entity.Adm;public class TestEmp { /** * 使用Hibernate新增emp */ @Test public void add() throws Exception { Adm e = new Adm(); e.setName("无"); e.setAge(24); e.setSalary(400.00); e.setBirthday(Date.valueOf("1985-05-09")); //1.加载主配置文件 Configuration conf = new Configuration(); conf.configure("/hibernate.cfg.xml"); //2.创建SessionFactory SessionFactory sf = conf.buildSessionFactory(); //3.创建Session Session session = sf.openSession(); //4.进行数据库访问的操作 Transaction ts = session.beginTransaction(); session.save(e); ts.commit(); session.close(); }} 把生成的sql 语句 发出来,oralce 的long 类型是 字符串类型 。好奇怪啊,你的oracle 什么版本的?9i么 我用的是oracle10g,生成的SQL语句是这样的:select adm_seq.nextval from dualHibernate: insert into ADM (name, age, salary, birthday, id) values (?, ?, ?, ?, ?) 解决了,引用5楼的ojdbc6.jar的包就好了 swing页面汉字显示为方块 个人觉得很奇怪的一个问题!! 请大家帮我分析下这段程序 如何用JAVA提取文本文档的多个数据(给分贴) 我现在没开发环境,在网吧,那位好心兄弟帮我写一个简单类,进来看看也好 如何对文本文件内容进行定位(随机存取) 寻找 IBM JDK 1.3 下载 【急】 关于SMSLib发送短信问题 对think in java中的问题 如何使用利用RTTI创建的对象实例?? 请教一个关于字节流的小问题 java指针相关
import java.sql.Timestamp;public class Adm {
private Integer id;
private String name;
private Integer age;
private Double salary;
private Boolean marry;
private Date birthday;
private Timestamp lastLoginTime;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Timestamp getLastLoginTime() {
return lastLoginTime;
}
public void setLastLoginTime(Timestamp lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
public Boolean getMarry() {
return marry;
}
public void setMarry(Boolean marry) {
this.marry = marry;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}}实体影射类:[code=html]<?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">
<hibernate-mapping>
<class name="com.test.entity.Adm"
table="ADM">
<id name="id" type="java.lang.Integer"
column="id">
<!-- 用来指明主键的生成方式 -->
<generator class="sequence">
<param name="sequence">adm_seq</param>
</generator>
</id>
<property name="name"
type="java.lang.String" column="name" />
<property name="age"
type="java.lang.Integer" column="age" />
<property name="salary"
type="java.lang.Double" column="salary" />
<property name="birthday"
type="java.sql.Date" column="birthday"></property>
</class>
</hibernate-mapping>[/code]
Hibernate主配置文件:<?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.url">
jdbc:oracle:thin:@192.168.1.120:1521:zyyw
</property>
<property name="connection.username">zyyw</property>
<property name="connection.password">zyyw</property>
<property name="connection.driver_class">
oracle.jdbc.OracleDriver
</property>
<!-- dialect方言,用于配置生成针对哪个数据库的SQL语句 -->
<property name="dialect">
<!--方言类,Hibernate提供的,用于封装某种特定数据库的方言 -->
org.hibernate.dialect.OracleDialect
</property>
<!-- 是否在控制台输出SQL -->
<property name="show_sql">true</property>
<!-- 是否格式化输出的SQL -->
<property name="format_sql">true</property>
<!-- 在配置文件中关联映射文件 -->
<mapping resource="com/test/entity/Adm.hbm.xml" />
</session-factory>
</hibernate-configuration>
测试类:package com.test.test;import java.sql.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.test.entity.Adm;public class TestEmp {
/**
* 使用Hibernate新增emp
*/
@Test
public void add() throws Exception {
Adm e = new Adm();
e.setName("无");
e.setAge(24);
e.setSalary(400.00);
e.setBirthday(Date.valueOf("1985-05-09"));
//1.加载主配置文件
Configuration conf = new Configuration();
conf.configure("/hibernate.cfg.xml");
//2.创建SessionFactory
SessionFactory sf =
conf.buildSessionFactory();
//3.创建Session
Session session = sf.openSession();
//4.进行数据库访问的操作
Transaction ts = session.beginTransaction();
session.save(e);
ts.commit();
session.close();
}}
oralce 的long 类型是 字符串类型 。好奇怪啊,
你的oracle 什么版本的?
9i么
adm_seq.nextval
from
dual
Hibernate:
insert
into
ADM
(name, age, salary, birthday, id)
values
(?, ?, ?, ?, ?)