解决方案 »

  1.   

    不能执行JDBC的批量更新,你这样发帖子没人知道原因,得看看你的代码,贴出代码吧
      

  2.   

    代码是这样的:实体类: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();
    }}
      

  3.   

    把生成的sql 语句 发出来,
    oralce 的long 类型是 字符串类型 。好奇怪啊,
    你的oracle 什么版本的?
    9i么
     
      

  4.   

    我用的是oracle10g,生成的SQL语句是这样的:select
            adm_seq.nextval 
        from
            dual
    Hibernate: 
        insert 
        into
            ADM
            (name, age, salary, birthday, id) 
        values
            (?, ?, ?, ?, ?)
      

  5.   

    解决了,引用5楼的ojdbc6.jar的包就好了