读书人

hibernate平台筹建

发布时间: 2012-09-01 09:33:03 作者: rapoo

hibernate平台搭建

搭建环境:

jdk1.6 + hibernate 3

?

hibernate3 的下载地址:http://nchc.dl.sourceforge.net/project/hibernate/hibernate3/3.5.5-Final/hibernate-distribution-3.5.5-Final-dist.zip

?

附件中书包含所必需的jar包

1.导入hibernate相应的jar包:??

hibernate平台筹建
?
?我当时下载的是hibernate-distribution-3.5.5-Final-dist,但只选用里面的必选required包之后会报错,因为少了一个slf4j-nop-1.5.2.jar这个包,所以单独下载了这个包

2,写hibernate配置文件 hibernate.cfg.xml(此文件直接放在src下面):

?

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>      <session-factory name="test">        <property name="hibernate.hbm2ddl.auto">create</property>        <property name="show_sql">true</property>        <property name="format_sql">true</property>        <property name="connection.useUnicode">true</property>        <property name="connection.characterEncoding">UTF-8</property>        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test1</property>        <property name="hibernate.connection.username">root</property>        <property name="hibernate.connection.password">root</property>        <mapping resource="mapping/Member.hbm.xml"/>     </session-factory></hibernate-configuration>

?说明:

hibernate.hbm2ddl.auto:自动创建表,当数据库不存在要操作的表时,将会自动进行创建,所以在执行完第一次hibernate操作后便可以注释这个属性

show_sql:打印执行的hql语句

format_sql:将show_sql打印出来的sql语句进行格式化

?

connection.useUnicode:使用编码

connection.characterEncoding:设置编码格式

(connection.useUnicode,connection.characterEncoding当自己在乱码中挣扎时,这两句相当重要)

hibernate.dialect:设置hibernate方言

mapping:对象与数据库表的映射文件

3.编写一个Member类:

public class Member implements Serializable{    private Integer mid;    private String name;    private Character sex;    public Member() {    }    public Member(Integer mid, String name, Character sex) {        this.mid = mid;        this.name = name;        this.sex = sex;    }    public Integer getMid() {        return mid;    }    public void setMid(Integer mid) {        this.mid = mid;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Character getSex() {        return sex;    }    public void setSex(Character sex) {        this.sex = sex;    }}

?3.编写Member类与数据库表的映射文件 Member.hbm.xml(此文件的地址与hibernate.cfg.xml中mapping路径要相同):

<?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="mapping">    <class name="mapping.Member" table="member">        <id name="mid">            <generator name="code">public class HibernateTest {    public static void main(String[] args) {        Configuration cfg = new Configuration();        cfg.configure();        SessionFactory sessionFactory = cfg.buildSessionFactory();        Session session = sessionFactory.openSession();        Transaction t = session.beginTransaction();        Member member = new Member();        member.setName("潘明志2");        member.setSex('男');        session.save(member);        t.commit();        session.close();    }}

?运行后便会看到控制台会打印出下面的语句

Hibernate:     insert     into        member        (name, sex)     values        (?, ?)

?运行成功后便可以注释hibernate.cfg.xml中hibernate.hbm2ddl.auto这个属性了,如果不注释,那数据库的的member表中永远就只有一条数据.

读书人网 >编程

热点推荐