首页 > Java开发 > 初探Hibernate

初探Hibernate

刚接触hibernate,以一个小例子,来看看如何搭建hibernate开发环境,如何以面向对象的开发方式来达到与数据库交互的效果。

先看看例子最终的目录结构:

下面是具体步骤:

1、创建一个普通的java项目。

2、创建用户库,并添加hibernate的jar文件,jar文件包括目录hibernate-3.2\lib下的所有jar文件和hibernate-3.2目录下的hibernate3.jar文件。

由于我们的项目要使用mySql数据库,所以这里加入mysql的jar文件。

3、将用户库引入项目。第二步我们创建了用户库,但是我们的项目还不知道,所以我们必须将用户库引入项目。

 

4、将hibernate-3.2\etc目录下的hibernate.cfg.xml、log4j.properties文件拷到项目的src目录下。

 

到此为止,hibernate开发环境就基本上搭好了。接下来就看实例了。

 

新建java类User,代码如下:

 

[java][/java] view plaincopy

  1. <span style="font-family:Microsoft YaHei; font-size:18px">package hibernate;
  2. import java.util.Date;
  3. public class User {
  4.     private String id;
  5.     private String userName;
  6.     private String password;
  7.     private Date createTime;
  8.     private Date expireTime;
  9.     public String getId() {
  10.         return id;
  11.     }
  12.     public void setId(String id) {
  13.         this.id = id;
  14.     }
  15.     public String getUserName() {
  16.         return userName;
  17.     }
  18.     public void setUserName(String userName) {
  19.         this.userName = userName;
  20.     }
  21.     public String getPassword() {
  22.         return password;
  23.     }
  24.     public void setPassword(String password) {
  25.         this.password = password;
  26.     }
  27.     public Date getCreateTime() {
  28.         return createTime;
  29.     }
  30.     public void setCreateTime(Date createTime) {
  31.         this.createTime = createTime;
  32.     }
  33.     public Date getExpireTime() {
  34.         return expireTime;
  35.     }
  36.     public void setExpireTime(Date expireTime) {
  37.         this.expireTime = expireTime;
  38.     }
  39. }
  40. </span>

将hibernate-3.2\eg\org\hibernate\auction目录下的User.hbm.xml文件拷到User所在目录,并修改该文件。

 

 

[html][/html] view plaincopy

  1. <span style="font-family:Microsoft YaHei; font-size:18px"><?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping
  6.     package="org.hibernate.auction">
  7.     <class name="hibernate.User" >
  8.         <id name = "id">
  9.             <generator class="uuid"></generator>
  10.         </id>
  11.         <property name="userName"></property>
  12.         <property name="password"></property>
  13.         <property name="createTime"></property>
  14.         <property name="expireTime"></property>
  15.     </class>
  16. </hibernate-mapping></span>

接下来配置hibernate.cfg.xml

 

 

[html][/html] view plaincopy

  1. <span style="font-family:Microsoft YaHei; font-size:18px"><!DOCTYPE hibernate-configuration PUBLIC
  2.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3.     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5.     <session-factory >
  6.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  7.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
  8.         <property name="hibernate.connection.username">root</property>
  9.         <property name="hibernate.connection.password">123</property>
  10.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  11.         <property name="hibernate.show_sql">true</property>
  12.         <mapping resource="hibernate/User.hbm.xml"/>
  13.     </session-factory>
  14. </hibernate-configuration></span>

新建ExportDB.java文件,用于在mysql里创建User表。

 

 

[java][/java] view plaincopy

  1. <span style="font-family:Microsoft YaHei; font-size:18px">package hibernate;
  2. import org.hibernate.cfg.Configuration;
  3. import org.hibernate.tool.hbm2ddl.SchemaExport;
  4. public class ExportDB {
  5.     public static void main(String [] args){
  6.         Configuration cfg = new Configuration().configure();
  7.         SchemaExport export = new SchemaExport(cfg);
  8.         export.create(true, true);
  9.     }
  10. }</span>

注意:执行ExportDB时,你使用的数据库必须已经存在,我的是hibernate库。

 

执行完后,hibernate库中就会出现我们的user表。

 

现在看我们具体的操作

新建Client.java类

 

[java][/java] view plaincopy

  1. <span style="font-family:Microsoft YaHei">package hibernate;
  2. import java.util.Date;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.cfg.Configuration;
  5. import org.hibernate.classic.Session;
  6. public class Client {
  7.     public static void main(String [] args){
  8.         //读取XML文件
  9.         Configuration cfg = new Configuration().configure();
  10.         //创建sessionFactory
  11.         SessionFactory factory = cfg.buildSessionFactory();
  12.         Session session = null;
  13.         try{
  14.             session = factory.openSession();
  15.             //开启事务
  16.             session.beginTransaction();
  17.             User user = new User();
  18.             user.setUserName("王五");
  19.             user.setPassword("123");
  20.             user.setCreateTime(new Date());
  21.             user.setExpireTime(new Date());
  22.             //保存user对象
  23.             session.save(user);
  24.             //提交事务
  25.             session.getTransaction().commit();
  26.         }catch (Exception e) {
  27.             e.printStackTrace();
  28.             //事务回滚
  29.             session.getTransaction().rollback();
  30.         }finally{
  31.             if(session != null){
  32.                 if(session.isOpen()){
  33.                     session.close();
  34.                 }
  35.             }
  36.         }
  37.     }
  38. }
  39. </span>

执行后,数据库中就会出现我们添加的数据。

 

 

到此为止,搭建hibernate环境和实例就演示完毕了。可以看出,使用了hibernate后,我们书写的代码少了许多,操作数据库比原来更加方便,hibernate封装的确实很强悍。


本文固定链接: http://www.devba.com/index.php/archives/2981.html | 开发吧

报歉!评论已关闭.