我们配置完Struts2以后 (详细配置请参考上面一片文章SSH2 Step by Step- Step 1 Struts2初步配置学习),开始配置Hibernate
这里使用了免费的数据库Mysql来保存数据库信息
1. 开始下载Hibernate的文件,地址:http://www.hibernate.org/downloads.html
下面是一张Hibernate的组件图,我们用到的是Javaee5.0,组件内容很丰富,但是先下载Hibernate Core的组件包先:
解压缩hibernate-release-4.0.0.CR4.zip后,可以看到lib目录下有一个required目录,偷懒的话可以将jar文件全部copy到你的project中,当然,咱不是偷懒的人,所以精选了几个核心jar包,至少运行不会报错。
Hibernate的核心Jar包
Mysql需要用到的包:(http://dev.mysql.com/downloads/connector/j/)
- antlr-2.7.7.jar
- commons-collections-3.2.1.jar
- dom4j-1.6.1.jar
- hibernate-commons-annotations-4.0.0.CR2.jar (如果要用到annotations的feature的估计要用到这个jar包,不管用不用,放着先吧)
- hibernate-core-4.0.0.CR4.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
- commons-collections-3.2.1.jar
- jboss-logging-3.0.0.GA.jar
- jboss-transaction-api_1.1_spec-1.0.0.Final.jar
mysql-connector-java-5.1.18-bin.jar
2. 配置hibernate xml文件 (hibernate.cfg.xml, 放在src/目录下), 看不懂的自己看备注或者百度...我这里的数据库是test, 用户名和密码都是root.
<?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="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hibernate.connection.url">
jdbc:mysql://localhost/test?characterEncoding=utf-8
</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!-- 数据描述语言生成方式 -->
<property name="hbm2ddl.auto">false</property>
<!-- for Debug Only -->
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
3. 修改原先的User 对象,增加几个属性:
package com.test.model;
import java.util.Date;
public class User {
private int id;
private String name;
private String password;
private Date birthday;
// get set 方法略过....
}
4. 在User类的源代码目录下增加一个Hibernate映射文件,名字为: User.hbm.xml....这个就是告诉Hibernate,怎么把User类映射到数据库中。
User.hbm.xml的内容如下:
<?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="com.test.model"> <class name="User"> <id name="id"> <generator class="native" /> </id> <property name="name" /> <property name="password" /> <property name="birthday" /> </class> </hibernate-mapping>
5. 修改hibernate.cfg.xml, 在“show_sql" 的属性下再增加一句:
<!-- 映射文件 -->
<mapping resource="com/test/model/User.hbm.xml" />
6. 好了,开始在Mysql中创建User表了,SQL如下:
CREATE TABLE user (
id INT PRIMARY KEY auto_increment,
password varchar(40),
name VARCHAR(40),
birthday DATE
);
7. 写个类测试一下是否可以连上数据库:
package test;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.test.model.User;
public class HibernateTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
//打开事务
Transaction tx = session.beginTransaction();
//创建POJO对象
User user = new User();
user.setName("brues");
user.setPassword("blog.youkuaiyun.com/bruesz");
user.setBirthday(new Date());
session.save(user);
//关闭事务
tx.commit();
session.close();
System.out.println("User Inserted!");
}
}
使用Hibernate的7个步骤:
看看输出的Log,已经成功更新数据库
查询一下数据库,是否有数据:
接下来要把 Struts2 和Hibernate整合起来,休息一下,详见下一篇文章.