首先我们进一步理解什么是对象关系映射模型?
它将对数据库中数据的处理转化为对对象的处理。如下图所示:
入门简单实例:
hiberante 可以用在 j2se 项目,也可以用在 j2ee (web项目中),而struts是web框架,所以用在 web项目。
hibernate开发方式的主要两种方式:
1.由Domain object -> mapping->db。(更加符合面向对象的编程方式,从对象入手来通过映射生成表)
2.由DB开始,用工具生成mapping和Domain object。(往往更加习惯从表的构建入手,使用更多)
我们首先用从对象映射出表,到后面再使用第二种。
步骤:
1.创建一个工程
2.引入Hibernate相关包,引入数据库驱动包(对于sql server数据库需要三个包msbase.jar mssqlserver.jar msutil.jar)。
除了hibernate.jar核心包还需要其他相关的库。
3.配置hibernate.cfg.xml文件
4.开发domain对象和对象关系映射文件
5.测试
domain对象
//要序列化,唯一标识对象
public class Employee implements java.io.Serializable{ private static final long serialVersionUID = 1L; private Integer id; private String name; private String email; private java.util.Date hiredate; 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 getEmail() { return email; } public void setEmail(String email) { this.email = email; } public java.util.Date getHiredate() { return hiredate; } public void setHiredate(java.util.Date hiredate) { this.hiredate = hiredate; } }
注意对象实现了序列化,序列化就是讲对象的字节序列持久化,也能唯一标识一个对象。对于序列化的知识可参考博主孤傲仓狼的文章:
对象关系映射文件
作用是用于指定 domain对象和表的映射关系.,该文件的取名有规范:domain对象.hbm.xml,一般我们放在 和domain对象同一个文件夹下(包下)
对主键增长策略比较讲究,对于不同的数据库,有相应的方式。
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.xidian.domain">
<class name="Employee" table="employee">
<id name="id" column="id" type="java.lang.Integer">
<!-- id设置自增长 -->
<generator class="identity"></generator>
</id>
<!-- 对其它属性还有配置 -->
<property name="name" type="java.lang.String">
<column name="name" length="500" not-null="false" /> //length的默认长度是255
</property>
<property name="email" type="java.lang.String" >
<column name="email" not-null="false"/>
</property>
<property name="hiredate" type="java.util.Date">
<column name="hiredate" not-null="false" />
</property>
</class>
</hibernate-mapping>
对象关系文件中,有些属性是可以不配,hibernate会采用默认机制,比如
<class table=”?” > table 值不配,则以类的小写做表名
<property type=”?”> type不配置,则hibernate会根据类的属性类型,选择一个适当的类型
hibernate.cfg.xml文件(默认是放在src文件夹下面,也可放在子文件夹下面,不过就要使用重载函数加载读取)
该文件用于配置 连接的数据库的类型,driver,用户名,密码 ,url ....同时管理对象关系映射文件 ,该文件的名称我们一般不修改.
<?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>
<!-- hibernate 设计者,给我们提供了一写常用的配置 -->
<!-- 配置使用的driver -->
<p