自己看书弄了个HelloWorld,插入数据到数据库没有成功没有成功。
Mymain类代码package helloworld;import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class MyMain{
//private static String configFile="/hibernate.cfg.xml";
private static Configuration configuration=new Configuration();
//private static final ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();
//private static SessionFactory sessionFactory;

/*static{
try{
configuration.configure(configFile);
sessionFactory=configuration.buildSessionFactory();
}catch(Exception e){
e.printStackTrace();
}
}

public static Session getSession(){
Session session=(Session)threadLocal.get();
if(session==null || !session.isOpen()){
session=sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}*/

public static void main(String[] args){


Session session=null;
Transaction trans=null;

try{
//session=HibernateSessionFactory.getSession();
//session=getSession();

SessionFactory sf=configuration.configure().buildSessionFactory();
session=sf.openSession();
trans=session.beginTransaction();
User[] users=new User[5];
for(int i=0;i<users.length;i++){
users[i]=new User("User"+i,"pwd");
session.save(users[i]);
System.out.println(i);
}

session.getTransaction().commit();
}catch(HibernateException e){
System.out.println("I am failed!");
if(trans!=null)
trans.rollback();
}finally{
if(session!=null)
session.close();
}
}
}实体类代码package helloworld;public class User {

private int id;
private String username;
private String password;

public User(){
super();
}

public User(String username,String password){
super();
this.username=username;
this.password=password;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
映射文件<?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>
    <class name="User" table="users">
        <id name="id" column="id">
             <generator class="native"></generator>
        </id>
        <property name="username" unique="true" not-null="true" length="20" column="username"></property>
        <property name="password" unique="true" not-null="true" length="20" column="password"></property>
    </class></hibernate-mapping>
配置文件<?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:mysql://localhost:3306/test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <mapping resource="helloworld/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>
运行后的信息2013-1-5 21:59:09 org.hibernate.cfg.Environment <clinit>
信息: Hibernate 3.2.5
2013-1-5 21:59:09 org.hibernate.cfg.Environment <clinit>
信息: hibernate.properties not found
2013-1-5 21:59:09 org.hibernate.cfg.Environment buildBytecodeProvider
信息: Bytecode provider name : cglib
2013-1-5 21:59:09 org.hibernate.cfg.Environment <clinit>
信息: using JDK 1.4 java.sql.Timestamp handling
2013-1-5 21:59:09 org.hibernate.cfg.Configuration configure
信息: configuring from resource: /hibernate.cfg.xml
2013-1-5 21:59:09 org.hibernate.cfg.Configuration getConfigurationInputStream
信息: Configuration resource: /hibernate.cfg.xml
2013-1-5 21:59:09 org.hibernate.cfg.Configuration addResource
信息: Reading mappings from resource : helloworld/User.hbm.xml
2013-1-5 21:59:09 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
信息: Mapping class: User -> users
I am failed!其实都是看书,敲出来的代码。求解,怎么插入数据呢

解决方案 »

  1.   

    给你发一个最基础的例子吧。你的例子我就不看了。你照着我的对对。形式差不多的一个例子
    package com.briup.hibernate.basic;import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.classic.Session;import com.briup.hibernate.pojo.Student;
    public class FirstHibernate {
    public static void main(String[] args) {
    //1.使用configuration初始化hibernate读取配置文件
    Configuration config=new Configuration();
    config.configure();//默认加载hibernate.cfg.xml的配置文件
    //config.configure("hibernate.cfg.xml");//配置文件自定义配置
    //2构建sessionfactory
    SessionFactory fac=config.buildSessionFactory();

    //3生成session
    //session是一个接口,openSession实现的接口的对象
    Session session=fac.openSession();//使用默认session
    Session session2=fac.getCurrentSession();

    //System.out.println(session2);
    //4.开始事务
    Student s=new Student();
    s.setId(1);
    s.setName("briup");
    s.setAddress("briup");
    s.setAge(12); 
    Transaction tr=session.beginTransaction();
    session.save(s);//提交操作s
    //save delete update

    tr.commit();
    session.close();
    }
    }package com.briup.hibernate.pojo;import java.io.Serializable;import javax.persistence.Column;import org.hibernate.annotations.Entity;
    public class Student implements Serializable{ private Long id;
    private String name;
    private String address;
    private int age;
    public long getId() {
    return id;
    }
    public void setId(long id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public Student(long id, String name, String address, int age) {
    super();
    this.id = id;
    this.name = name;
    this.address = address;
    this.age = age;
    }
    public Student() {
    super();
    // TODO Auto-generated constructor stub
    }
    @Override
    public String toString() {
    return "Student [id=" + id + ", name=" + name + ", address=" + address
    + ", age=" + age + "]";
    }

    }配置文件:
    student.hbm.xml<?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 package="com.briup.hibernate.pojo" >
    <class name="Student"  table="student" >
    <id name="id" column="id">
    </id>
    <property name="name" column="name"></property>
    <property name="address" column="address"></property>
    <property name="age" column="age"></property>
    </class>
    </hibernate-mapping>
    注意账户名密码以及数据库url别复制<?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    <session-factory>
    <property name="dialect">
    org.hibernate.dialect.Oracle10gDialect
    </property>
    <property name="connection.url">
    jdbc:oracle:thin:@127.0.0.1:1521:xe
    </property>
    <property name="connection.username">briup</property>
    <property name="connection.password">briup</property>
    <property name="connection.driver_class">
    oracle.jdbc.driver.OracleDriver
    </property>
    <property name="show_sql">true</property><!-- 鏄剧ずsql璇彞-->
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">update</property>
    <property name="current_session_context_class">thread</property>

    <mapping resource="com/briup/hibernate/pojo/Student.hbm.xml </session-factory>
    </hibernate-configuration>