zoukankan      html  css  js  c++  java
  • hibernate学习系列-----(1)开发环境搭建

    其实一两个月前就在了解hibernate方面的知识了,但一直以来,都没有好好的总结,而且一直使用的是myeclipse,感觉有些傻瓜式的操作就可以搭建起hibernate的开发环境,但这样一点都不好,没有理解到hibernate到底是怎么配置的,所以你今天特使用Eclipse来一步一步搭建hibernate的开发环境,下面,正式进入正题。

     

    • 新建一个web项目,名字就随便吧,你喜欢什么名字就什么吧,这是我的截图。

    QQ截图20150802104146

    引入hibernate的依赖jar包,我使用的是hibernate-release-4.3.10.Final下载好后解压,打开压缩包下的lib目录下的require文件夹,这是hibernate的所以来的必须的jar包,接下来,在刚才新建的项目里新建一个libs文件夹,将刚才的所说的jar包copy进去,另外,由于我们需要连接MySQL数据库以及使用JUnit测试,将所需的mysql-connector-java-5.0.8-bin.jarjunit-4.5.jar两个jar包引用进去,关于这些jar包,可以在网上搜索。接下来,就是把这些jar包添加到编译环境中去,选中libs下的jar包,右击选择Build Path –>Add to Build Path,这样就把依赖jar包成功添加进去了。

    继续往下,我们需要配置最重要的hibernate配置文件hibernate.cfg.xml以及进行日志处理的log4j.properties属性文件:打开上一步解压后的hibernate文件夹,打开project—>etc文件夹,将该文件夹下的hibernate.cfg.xmllog4j.properties文件拷贝到项目的src文件夹下,打开hibernate.cfg.xml文件,将session-factory标签中的内容替换成如下的内容:

    <session-factory>
            <!--配置mysql数据库的连接参数 -->
            
            
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            <!-- 驱动程序名 -->
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <!-- 数据库名称 -->
            <property name="hibernate.connection.url">jdbc:mysql:///hibernatedemo</property>
            <!-- 用户名 -->
            <property name="hibernate.connection.username">root</property>
            <!-- 密码 -->
            <property name="hibernate.connection.password">yzp140103</property>
            
            
        </session-factory>

    这样就配置好了。

    接下来,要做的就是做开发测试了:在项目的src目录下新建一个实体类包com.joe.entity,在该包下新建一个实体类Student,代码如下:

    package com.joe.entity;
    
    import java.io.Serializable;
    
    public class Student implements Serializable {
        /**
         * 
         */
        private static final long serialVersionUID = 5548279324472937805L;
        private int id;
        private String name;
        private int age;
        
        /**
         * 申明无参构造函数
         */
        public Student(){
            
        }
        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;
        }
    
    }

    对了,说明下,必须申明一个无参的构造函数,这是必须的哦!

    关键问题来了,我们不是说hibernate是做数据持久化的吗?那说百了就是要和数据库打交道呗,对于Student类,怎么和数据库关联呢,那我们就要说说这对象关系映射文件了Xxx.hbm.xml文件了,其中的Xxx是实体类的名称,那我们的Student.hbm.xml文件的内容就是:

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
    <hibernate-mapping>
        <!-- 一个class标签对应一个实体类,name属性指定实体类名称,table属性指定关联的数据库表 -->
        <class name="com.joe.entity.Student" table="stu_tab">
            <!-- 主键 -->
            <id name="id" column="stu_id">
                <!-- 主键的生成策略 -->
                <generator class="native"></generator>
            </id>
            <!-- 其他属性,name对应实体类的属性,column对应关系型数据库表的列 -->
            <property name="name" column="stu_name"></property>
            <property name="age" column="stu_age"></property>
        </class>
    </hibernate-mapping>

    将该文件同样添加到com.joe.entity包下,这样就行了吗?答案当然是否定的,我们还要将这个实体类注册到hibernate.cfg.xml文件中,在session-factory标签下面最后一个property标签后添加:

    <!-- 添加Student.hbm.xml映射文件 -->
            <mapping resource="com/joe/entity/Student.hbm.xml"/>

    再往下走,我们来测试一下,在项目下新建一个资源文件夹test,再在test文件下新建测试包com.joe.test,在该包下新建一个StudentTest.java类,并书写如下代码:

    package com.joe.test;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    import org.junit.Test;
    
    import com.joe.entity.Student;
    
    public class StudentTest {
        /**
         * @Test是junit4测试的注解方式申明
         *  根据对象关系映射文件生成DDL
         */
        @Test
        public  void createTable(){
            Configuration cfg=new Configuration().configure();
            SchemaExport se=new SchemaExport(cfg);
            se.create(true, true);
        }
        }

    当然,也可以使用如下的方式生成DDL,在hibernate.cfg.xml问价中新增:

    <!-- 生成DDL的配置 -->
            <property name="hibernamr.hbm2ddl.auto">create |update</property>

    最后,执行StudentTest.java类,选择Run As—>JUnit Test, 在控制台可以看到如下的信息,那就证明成功了:QQ截图20150802120241

    当然,也可以打开MySQL ,进一步验证。

    好了,hibernate的开发环境就算正式搭建完成。

  • 相关阅读:
    机器人对话小程序
    partial关键字的含义
    TreeView控件常用写法
    电话本管理程序(实现增删改查功能)
    三层架构
    c# RegistryKey 的相关简单操作
    VS2010程序打包操作(超详细的)
    一些中文.net讲座
    对象表单自动数据邦定
    AspNetForums 2.0中的全文检索
  • 原文地址:https://www.cnblogs.com/doctorJoe/p/4695484.html
Copyright © 2011-2022 走看看