HeberNate入门(一)

来源:互联网 发布:通达信敢死队资金源码 编辑:程序博客网 时间:2024/05/22 11:45

开发环境配置

  1. 安装java开发环境与开发工具(JDK+eclipse)
  2. 下载HeberNate的包(包含jar文件与HeberNate 使用说明
  3. 下载地址 http://pan.baidu.com/s/1pJiI7kn

一个简单的实例

工程总览

这里写图片描述

创建流程详解

  • 创建一个类 HeberNateDemo
  • 把hibernate-release-4.3.8.Final\hibernate-release-4.3.8.Final\lib\required目录下面的Jar包添加进入工程,这里添加jar包的方法很多,本例子采用的是新建一个Lib 的folder 把jar包复制进来之后选择 Lib下的jar包选择build-add按钮添加
  • 为了测试方便我们这里建立了一个Junit文件即 HeberNateJunit(也可以直接建立一个类 main方法进行测试),在创建junit类的时候eclipse会自动加载Junit 的jar包
  • 在hibernate-release-4.3.8.Final\hibernate-release4.3.8.Final\project\etc 目录下将 hibernate.cfg.xml文件复制放在src根目录下
  • 在hibernate-release-4.3.8.Final\hibernate-release-4.3.8.Final目录下搜索version.hbm文件得到并复制到即将创建的 类文件包里面
  • 那么以上就把所有需要的jar包 和xml 配置文件全部加入进来了,下面就是根据自己的需要编写java文件 和配置相关的信息
  • 首先创建一个 org.pojo.Person 类编辑内容见后面代码
  • 然后配置person.hbm.xml文件
  • 配置hibernate.cfg.xml文件
  • 新建一个HeberNateJunit (工程右键菜单中有该选项) 类容见后面代码
  • 打开Mysql 数据库新建一个数据库 HebernateDB 此处不分大小写 但是数据库名字需要在hibernate.cfg.xml 中正确配置
  • 那么此时(各个文件中的带吗 或者信息如后面代码),就可以选择HeberNateJunit类右键 run as- junit case开始测试了
  • -

源代码

  • Person.java
package org.pojo;import java.util.Date;import java.util.List;import java.util.Map;import java.util.Set;public class Person {    private Integer id;    private String name;    private String password;     private Date updateTime;    private String[] array;    @SuppressWarnings("rawtypes")    private List mylist;    @SuppressWarnings("rawtypes")    private Map mymap;    private Set myset;    public Person(){}    public Person(String name, String password, Date updateTime) {        super();        this.name = name;        this.password = password;        this.updateTime = updateTime;    }    public Set getMyset() {        return myset;    }    public void setMyset(Set myset) {        this.myset = myset;    }    public String[] getArray() {        return array;    }    public void setArray(String[] array) {        this.array = array;    }    public List getMylist() {        return mylist;    }    public void setMylist(List mylist) {        this.mylist = mylist;    }    public Map getMymap() {        return mymap;    }    public void setMymap(Map mymap) {        this.mymap = mymap;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Date getUpdateTime() {        return updateTime;    }    public void setUpdateTime(Date updateTime) {        this.updateTime = updateTime;    }}
  • Person.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="org.pojo">    <class name="Person" table="t_person">        <id name="id">            <generator class="native"></generator>        </id>        <property name="name" column="t_name"  type="string"></property>        <property name="password" type="string"></property>        <property name="updateTime" ></property>        <!-- 数组 -->        <array name="array">        <key column="id"></key>        <list-index column="indexs"></list-index>        <element column="val" type="string"></element>        </array>        <!-- list -->        <list name="mylist">        <key column="id"></key>        <list-index column="indexs"></list-index>        <element column="val" type="string"></element>        </list>        <!-- map -->        <map name="mymap">        <key column="id"></key>        <map-key column="mapkey" type="string"></map-key>        <element column="val" type="string"></element>        </map>        <!-- set -->        <set name="myset">        <key column="id"></key>        <element column="val" type="string"></element>        </set>    </class></hibernate-mapping>
  • HeberNateJunit.java
package org.junitTest;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.pojo.Person;public class HeberNateJunit {    Session session;    Transaction ta;    @Before    public void setUp() throws Exception {        System.out.println("初始化数据");        Configuration config=new Configuration().configure();        @SuppressWarnings("deprecation")        SessionFactory factory =config.buildSessionFactory();        session =factory.openSession();    }    @After    public void tearDown() throws Exception {        System.out.println("释放数据");        if(session.isOpen()){        session.close();        }    }    @Test    public void testAdd(){        Person p=new Person("admin","11111",new Date());        String[] array={"aa","bb","cac","dd"};        p.setArray(array);        List list=new ArrayList();        list.add("上海");        list.add("北京");        p.setMylist(list);        Map map=new HashMap();        map.put("aa", "中国");        map.put("bb", "日本");        p.setMymap(map);        Set set =new HashSet();        set.add("看书");        set.add("游泳");        p.setMyset(set);        ta=(Transaction) session.beginTransaction();         session.persist(p);        ta.commit();    }}
  • hebernate.cfg.xml
<!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="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///heberNatedb</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password"></property><property name="hibernate.hbm2ddl.auto">update</property><mapping resource="org\pojo\Person.hbm.xml"/></session-factory></hibernate-configuration>

杂记

  • 需要持久化的类必须要有id
0 0
原创粉丝点击