Event.hbm.xml<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
        SYSTEM
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" ><hibernate-mapping package="com.evens">
<class name="Event" table="EVENTS">
<id name="id" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="date" type="timestamp" column="EVENT_DATE" />
<property name="title" column="title" />
</class>
</hibernate-mapping>hibernate.cfg.xml
<?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.driver_class">com.mysql.jdbc.Driver</property> <!-- JDBC URL连接mybbs数据库  --> <property name="connection.url">jdbc:mysql://localhost:3306/event</property> <!-- 数据库用户名--> <property name="connection.username">root</property> <!-- 数据库密码--> <property name="connection.password">123456</property>
<!-- 各属性的配置--> <!--为true表示将Hibernate发送给数据库的sql显示出来 --> <property name="show_sql">true</property>


<property name="current_session_context_class">thread</property>
<!-- SQL方言,这边设定的是MySQL --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!--映射文件 -->
<mapping resource="com/evens/Event.hbm.xml" />
</session-factory>
</hibernate-configuration>Event.java
package com.evens;import java.util.Date;
/**
 * 持久化类
 * @author Administrator
 *
 */
public class Event {
private int id;
private String title;
private Date date;
public Event(){}
public int getId() {
return id;
}
public void setId(Integer id) {
this.id = id.intValue();
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}}
my.java
package com.evens;import java.util.Date;
import java.util.List;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class my { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
    my  m=new my();
//     m.add();
//     m.load();
//     m.list();
//     m.update();
        m.delete();
}
private void add(){
Event en = new Event();
en.setDate(new Date());
en.setTitle("测试");
Configuration config = new Configuration();
config.configure();
SessionFactory sess = config.buildSessionFactory();
Session session = sess.getCurrentSession();
Transaction tran = session.beginTransaction();
session.save(en);
tran.commit();
}
    private void load()
    {
     Session session=new Configuration().configure().buildSessionFactory().getCurrentSession();
        session.beginTransaction();
        Event en=(Event)session.get(Event.class,new Integer(2));
        System.out.println(en.getId()+"什么");
        session.getTransaction().commit();
    }
    private void list()
    {
     Session session=new Configuration().configure().buildSessionFactory().getCurrentSession();
        session.beginTransaction();
        Query query=session.createQuery("from Event");//HQL  Hibernate Query Language
        List<Event> list=query.list();
        for(Event en:list)
        {
         System.out.println(en.getTitle());
        }
        session.beginTransaction().commit();
    }
    private void update()
    {
     Session session=new Configuration().configure().buildSessionFactory().getCurrentSession();
        session.beginTransaction();
        Event en=(Event)session.get(Event.class,2);
     en.setTitle("111");
     session.update(en);
     session.getTransaction().commit();
    }
    private void delete()
    {
     Session session=new Configuration().configure().buildSessionFactory().getCurrentSession();
        session.beginTransaction();
        Event en=(Event)session.get(Event.class,2);
        session.delete(en);
        session.getTransaction().commit();
    }
}

解决方案 »

  1.   

    int  类型的id  怎么处理??????
      

  2.   

    <id name="id" type="java.lang.Integer">
       <column name="id" />       《 此处id为数据表中的字段名》
       <generator class="native"></generator>
    </id>
      

  3.   

    我的 id  为int 类型 该怎么设置??
      

  4.   

    这不关事,hibernate默认的就是integer,肯定是另外个地方出问题了
      

  5.   

    你这配置已经是int型了 估计错在column name="id" 这个地方,你表中是这个名字吗,这个对应表中的名字
      

  6.   

    private int id;
    修改成 private Integer id;
    你懂的
      

  7.   

    将Integer类型的数据转换成string
      

  8.   

    <column name="id"/>  id是关键字吧
      

  9.   

    <id name="id" type="java.lang.Integer">
     <generator class="native"></generator>
    </id>native策略,你数据库设置主键自动增长之类的策略了么? 你保存多条记录是否出错?
      

  10.   

    9 楼正解Hibernate映射字段Integer可能会传入Null,如果JavaBean中定义的是基本类型int,setter方法会报错,所以要用Integer代替int
    记得修改getter setter方法,不能只改成员变量