zoukankan      html  css  js  c++  java
  • 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的使用有一个清晰直观的认识了。

  • 相关阅读:
    怎样运用好ZBrush中的布尔运算
    怎样用好ZBrush 中的映射大师功能
    jvm
    java8 新用法
    entity framework delete table Error 11007:
    'EF.Utility.CS.ttinclude' returned a null or empty string.
    js判断是否绑定了事件。
    线程每5分钟刷新一次
    http请求提交cookie
    javascrip小笔记
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/4053872.html
Copyright © 2011-2022 走看看