作为JAVA开发常用的IDE,Myeclipse让开发变得更简捷
作为实现了ORM(对象关系映射)并有诸多优点的框架,Hibernate是的开发更对象化,封装jdbc+简化DAO层+ORM(实现数据持久化)
<hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.url"></property> <property name="connection.driver_class"></property> <property name="dialect">org.hibernate.dialect.MySQL5Dialect.class</property> </session-factory> </hibernate-configuration>
ps:dtd文件,一种文件格式,所有的框架中都有此文件,用来定制文档类型,如图:
二.创建持久化类(即实体类entity),并使该类实现java.io.Serializable 接口,添加默认构造方法
>创建位置:在src下创建po包,然后在package po下创建class
>po包下所有类需要实现java.io.Serializable接口
>po包下的所有类必须有默认构造方法(即jvm自带的无参构造方法),如果添加了含参构造函数,则必须添加无参构造函数。
三.创建并配置映射文件*.hbm.xml——创建ClassNamel.hbm.xml文件并配置之(此项意在建立持久化类和数据库表之间的一一映射关系)
1.首先,在po包下创建ClassName(可缩略).hbm.xml文件
2.然后, 在Web App Libaries下找到hibernate-core-4.1.4.Final.jar文件,打开后,找到/org/hibernate/hibernate-mapping-3.0.dtd(org.hibernate文件夹下的hibernate-mapping-3.0.dtd文件)
打开此文件,然后将声明部分<!DOCTYPE······>复制后添加到*.hbm.xml文件中——目的:按照hibernate规定的方式书写*.hbm.xml,并且让hibernate能够识别并解析之
3.创建根节点<hibernate-mapping><hibernate-mapping>
4.在根节点内创建子节点<class>,并制定class的name和table属性
name属性:指明java中该class的路径和名称,如name="articles/po/Articles"
table属性:指明在数据库中该持久化类对应的表名,如:table="articles"
5.创建<class>节点的子节点<id></id>和<property></property>
两者异同:两者中都应声明(declares)name="持久化类中属性名"; column="对应表中列名"; type="在java中数据类型"
不同的是,在id节点内,需要加入子节点<generator class="increment"></generator>
如果是oracle数据库,则为:<generator class="sequence"></generator>
如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="articles/po/Articles" table="articles"> <id name="id" column="A_id" type="java.lang.Integer"> <!-- 添加主键生成策略 --> <generator class="increment"></generator> </id> <property name="articleTitle" column="articleTitle" type="java.lang.String"></property> <property name="articleContent" column="articleContent" type="java.lang.String"></property> <property name="articleLabel" column="articleLabel" type="java.util.List<String>"></property> </class> </hibernate-mapping>
三.在配置文件中配置映射文件
在hibernate.cfg.xml中,在<session-factory></session-factory>节点内添加自结束子节点——<mapping resource="映射文件的地址" />
PS:hibernate-mapping-3.0.dtd文件中内容的理解,如图:
此中,<!ELEMENT 元素名 元素内容>中的内容代表hibernate-mapping 下的子节点,ATTLIST:属性列表 attribute list
dtd文件中属性声明语法:<!ATTLIST 元素名 属性名 属性类型 属性限定条件> 一个属性声明可以声明一个元素的多个属性