返回首页
当前位置: 主页 > 网络编程 > Jsp实例教程 >

JAVA持久层框架Hibernate环境配置和使用

时间:2012-12-17 13:55来源:知行网www.zhixing123.cn 编辑:麦田守望者

最近

  最近继续瞎忙乎,接手了开学的第三个网站项目。应要求做一个红酒商城,开价800,所以一直在修改模板增添美化页面。修改到今天基本要完工了。再说明天周 六了,晚上打算做个休息调整,再加上今天媳妇回家了,走将近半个多月,晚上没啥心情继续做,所以更新下博客,走访走访朋友们!今天的题目,估计很多朋友又 看不懂了,不扯淡了,切入正题……

Hibernate是啥

  作为三大主流框架的Hibernate,在整个网站中作为了持久层。即,将对象持久化到数据库,对数据库进行操作。Hibernate是一个独立的对象-关系映射(ORM)持久化框架,本身不依赖于WEB服务器而存在。

配置Hibernate工作环境

  工欲善其事必先利其器,在开始进行Hibernate开发之前,必须学会搭建Hibernate环境。首先下载必要的工具。


Hibernate3   下载地址:http://www.hibernate.org/downloads


Mysql的JDBC驱动    下载地址:http://www.mysql.com

  一步一步开始安装配置:

  一:安装Mysql数据库

  安装Mysql数据库作为学习测试。安装方法不说了,你懂的……

  二:导入Jar包

  Eclipse中新建一个“Java Project”,工程名叫做“Hibernate_First”,并且将“Mysql的JDBC驱动jar包”,解压hibernate安装包后得到的 “hibernate3.jar”以及hibernate的lib库下所有的jar包。如果你问我如何向工程中导入jar包的话,我劝你还是先看看 java基础再看本篇文章吧。

JAVA持久层框架Hibernate环境配置和使用1

导入jar包

  三:创建持久化类

  我们创建一个User对象,它使用普通的Java对象来封装,添加相应的属性,并提供相应的get和set方法就可以:

package com.java50.www.hibernate;
import java.util.Date;
public class User {
private String id;
private String username;
private String password;
private Date createTime;
private Date expireDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getExpireDate() {
return expireDate;
}
public void setExpireDate(Date expireDate) {
this.expireDate = expireDate;
}
}

User对象拥有了ID标识、姓名、密码、创建时间和销毁时间。

  四:创建对象-关系映射文件

  User.hbm.xml和User位于同一目录,配置代码为;

<?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>
<class name="com.java50.www.hibernate.User">
<id name="id">
<generator class="uuid" />
</id>
<property name="username" />
<property name="password" />
<property name="createTime" />
<property name="expireDate" />
</class>
</hibernate-mapping>

  其中,所有配置都写在<hibernate-mapping>标签之间,<class>来找到对应的持久化对象,使用ID作为了 主键,通过设置 <generator class="uuid" />使得id使用uuid的方式来赋值,具体后面会将。其它属性使用<property>做了配置。

 五:创建Hibernate配置文件hibernate.cfg.xml

  完全可以参照hibernate自带的演示程序。

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">phpwind.net</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/java50/www/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

<property name="hibernate.connection.url">指向驱动的url

<property name="hibernate.connection.driver_class">指向驱动类,相当于Class.Forname()

<property name="hibernate.connection.username">数据库用户名

<property name="hibernate.connection.password">数据库密码

<property name="hibernate.dialect">数据库方言

<mapping resource="com/java50/www/hibernate/User.hbm.xml"/>将对象-关系映射文件加载进来


 

需要注意的是,对于数据库配置方言,上文指定了使用MYSQL数据库,Hibernate提供了非常多的数据库方言,例如连接SQL的 org.hibernate.dialect.SQLServerDialect和连接Oracle的 org.hibernate.dialect.OracleDialect等……

  六:工具类到处配置信息到数据库

  上文已经将对象-关系映射关系配置好,那么如果使用Hibernate导入这些表,字段的信息呢?创建一个工具类Export.java

package com.java50.www.hibernate;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class Export {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}

执行后,可以看得到,Hibernate成功的在我们的MYSQL数据库中的test数据库创建了User这个表:

JAVA持久层框架Hibernate环境配置和使用2

MYSQL数据库中得到了User表

  那么至此已经成功的配置了hibernate环境,并且连接到了数据库成功创建了一张表,以后我会将,使用Hibernate对数据库进行增删改查。希望大家再接再厉,努力学习……

------分隔线----------------------------
标签(Tag):Java JAVA实例教程 JAVA基础教程 Java源代码 Java技巧
------分隔线----------------------------
推荐内容
猜你感兴趣