• Hibernate入门学习(二)


      本文主要讲如何搭建Hibernate开发环境和简单实例。

    一、搭建开发测试环境

    1.1 下载Hibernate

      从Hibernate官方网站上下载最新的Hibernate ORM,从Hibernate官方文档页面可以看到相应的最新帮助文档内容。

      我下载了当前最新的Hibernate压缩包为hibernate-release-4.3.6.Final.zip,这里面也包含了相应的帮助文档,不过在线的帮助文档有所差别,会更加全面一些。

    1.2 在Eclipse中配置Hibernate

      Hibernate不存在安装的说法,只需要在目标Java工程中添加Hibernate相应的库文件即可。具体操作步骤如下:

    • 打开eclipse->windows->preferences->java->build path->user libraries,点击new,新建一个library,可取名为HibernateLib;
    • 点击Add JARs,选择上一步解压出来的文件夹hibernate-release-4.3.6.Final->lib->required中的所有jar文件;
    • 下载数据库对应的JDBC驱动,我这里用的是Windows SQL Server 2008,所以从微软官网下载了一个sqljdbc4.jar。当然,如果使用MySQl或者Oracle,也需要下载相应的JDBC驱动。
    • 将JDBC驱动添加到Eclipse依赖库中。

    1.3 配置数据库

      这里主要是为了测试Hibernate,所以搭建一个简单的数据库和测试表即可,创建的SQL语句如下:

    create database hibernate
    go
    use hibernate
    go
    create table student(id int primary key, name varchar(20), age int)

      这样就创建了一个名为hibernate的数据库,并且包含一张名为student的表格,表格中有三列分别是:id、name、age。

    二、测试代码实例

    2.1 创建Java工程

    • 在Eclipse中新建一个名为HibernateDemo的工程,其package可以命名为com.xiaoku.hibernate.model。
    • 添加工程环境配置中创建的User Library,添加方法为:右键单击工程名,选择Build Path->Add Libraries->User Library->Next->勾选HibernateLib->Finish。

    2.2 新建一个简单类

      将此类定义于com.xiaoku.hibernate.model包下。类定义具体内容如下:

    package com.xiaoku.hibernate.model;
    
    public class Student {
        private int id;                // ID
        private String name;    // NAME
        private int age;        // AGE
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }    
    View Code

     2.3 修改Hibernate配置文件

      Hibernate配置文件默认命名为hiberante.cfg.xml,不要尝试修改此文件名。在hibernate-release-4.3.6.Finalprojectetc文件夹中包含了一个hiberante.cfg.xml配置文件示例,可以直接拿过来修改即可。当然在工程根目录新建一个hiberante.cfg.xml也可以。我这里使用SQL Server,配置文件的示例如下:

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
         
    <hibernate-configuration>
        <session-factory>
         
        <!-- Database connection settings -->
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=hibernate</property>
        <property name="connection.username">sa</property>
        <property name="connection.password">12345678</property>
             
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sqlserver">true</property>
        
        <!--根据需要自动生成、更新数据表-->
         <property name="hbm2ddl.auto">update</property>
         <property name="myeclipse.connection.profile">sqlserver</property>
         
        <mapping resource="com/xiaoku/hibernate/model/Student.hbm.xml"/>
             
        </session-factory>
    </hibernate-configuration>
    View Code

       如果使用其他的数据库,请相应修改其中的数据库驱动、用户名密码等信息。注意上面配置文件中指定了mapping resource,这个值可根据包名和类名做修改。若类名为Student,则此处的类配置文件必为:Student.hbm.xml。

    2.4 创建一个Mapping文件

      这里Student类要用到数据库,所以针对Student类创建一个Mapping文件名为Student.hbm.xml,放在com.xiaoku.hibernate.model包下。内容大致如下:

    <?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 package="com.xiaoku.hibernate.model">
        <class name="Student">
            <id name="id"></id>
            <property name="name"></property>
            <property name="age"></property>
        </class>
    </hibernate-mapping>
    View Code

      注意文件开始处的配置,此处与hibernate.cfg.xml不一样。

    2.5 创建一个StudentTest用于测试

      创建一个测试类StudentTest.java,放在com.xiaoku.hibernate.model包下代码如下:

    package com.xiaoku.hibernate.model;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    
    public class StudentTest {
        public static void main(String[] args){
            Student s = new Student();
            s.setId(1);
            s.setName("猪猪");
            s.setAge(28);
             
            Configuration cfg = new Configuration();
            SessionFactory sf = cfg.configure().buildSessionFactory();
             
            Session session = sf.openSession();
            session.beginTransaction();
            session.save(s);
            session.getTransaction().commit();
            session.close();
            sf.close();     
        }
    }
    View Code

     2.6 运行结果

      在Eclipse中会提示buildSessionFactory()这个函数被deprecated,但实际上程序还是可以运行成功的。

      检查数据库中的student表,可以发现多了一条记录(1,'猪猪', 28)。表明Hibernate成功执行了数据库插入操作。

    小结:

      本文介绍了Hibernate最简单的一个入门实例,可以对Hibernate的使用有一个清晰直观的认识了。

  • 相关阅读:
    JavaScript操作符instanceof揭秘
    Linux打开txt文件乱码的解决方法
    Working copy locked run svn cleanup not work
    poj 2299 UltraQuickSort 归并排序求解逆序对
    poj 2312 Battle City 优先队列+bfs 或 记忆化广搜
    poj2352 stars 树状数组
    poj 2286 The Rotation Game 迭代加深
    hdu 1800 Flying to the Mars
    poj 3038 Children of the Candy Corn bfs dfs
    hdu 1983 Kaitou Kid The Phantom Thief (2) DFS + BFS
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/4053872.html
Copyright © 2020-2023  润新知