hibernate学习系列-----(1)开发环境搭建

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

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

引入hibernate的依赖jar包,我使用的是hibernate-release-4.3.10.Final,下载好后解压,打开压缩包下的lib目录下的require文件夹,这是hibernate的所以来的必须的jar包,接下来,在刚才新建的项目里新建一个libs文件夹,将刚才的所说的jar包copy进去,另外,由于我们需要连接MySQL数据库以及使用JUnit测试,将所需的mysql-connector-java-5.0.8-bin.jar和junit-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.xml和log4j.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, 在控制台可以看到如下的信息,那就证明成功了:

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

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

时间: 2024-09-30 19:20:08

hibernate学习系列-----(1)开发环境搭建的相关文章

Beaglebone Back学习三(开发环境搭建)

开发环境搭建 1 Ubuntu环境搭建 2 Window环境搭建 3 开发板环境搭建 1 Ubuntu环境搭建 (1)安装必要的网络工具 samba nfs tftp vmware-tools samba nfs apt-get install nfs-kernel-server vim  /etc/exports  (/path/to/nfs  *(rw,sync,no_root_squash) ) /etc/init.d/nfs-kernel-server restart (2)配置通信网络

Cocos2dx 学习笔记整理----开发环境搭建

最近在学习cocos2dx,预备将学习过程整理成笔记. 需要的工具和环境整理一下: 使用的版本 cocos2dx目前已经出到了v3.1.1,学习和项目的话还是用2.2.3为宜,毕竟不大想做小白鼠,并且学习了几天之后才发出3.X版本的,版本内容变动比较大. 开发环境 1 jdk 1.6以上 2 python 2.7为宜(创建项目要用的) 3 NDT+Android SDK 4 Cygwin或者MinGW 开发工具 1 Eclipse + CDT + ADT 2 VS2010 3 Sublime T

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

hadoop1学习系列1——运行环境搭建

1.VirtualBox 安装 恩,一路默认即可安装完毕. 2.宿主机网络环境配置(使用Host-Only模式,上网啥的不用改配置) 2.1 右击VirtualBox选择属性,更改网络IP设置 2.2 设置为Ip地址和子网掩码为如下属性:,点击确定.(注意Centos默认网段为56) 3. Centos6.4 运行环境设置(双击图标文件) 3.1 出现VIrtualBox界面 3.2 点击设置,将USB设备禁用(不启用啦) 3.3 网络模式选择Host-Only 3.3 点击确定. 一个搭建ha

Scala学习1————scala开发环境搭建(windows 10)

Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面向对象的结合. 我个人对大数据方面的知识特别感兴趣,发现Kafka和Spark的源码都是scala编写的,而如果我想深入的学习,学习源码可能要用到scala. Spark的生产环境使用Java或者Scala编程似乎是主流,然而开发Spark程序的话使用Java没有使用Scala开发相率高. Scal

android学习第一篇 开发环境搭建

android开发环境搭建 由于博主最近在学golang,所以就想着顺手把android开发给学了.最近这两天都在折腾idea,搭建开发环境.昨天晚上终于把golang和android的环境都搭好了,总结一下. 博主一开始使用android studio 做 android 开发,但使用idea做 golang 开发.这两个IDE都是功能十分庞大的,一同运行的话两个分别占用1.5G内存,所以就琢磨用idea开发安卓了.期间遇到几个坑,分享出来. 1.安装安卓SDK 下载地址 http://and

python学习之python开发环境搭建

Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息,包括设计初衷.代码风格.发展历史.基本语法和相关开发的IDE等.在国外Python使用的还是比较多的,而在国内它用的也是比较多的,啄木鸟社区是国内最大的Python社区,在这里你可以找到关于Python的一切,如果你有什么问题也可以得到很好地回答.它简洁而清晰的语法是我喜欢这门语言的原因. 安装配置

Android学习系列之(一)环境搭建

要想学习Android开发,首先第一件事莫过于进行Android开发环境的搭建了,那么如何进行Android环境搭建呢? 一.工具准备: 要搭建环境,首先需要的自然是开发软件了,如下二种任选其一即可: adt-bundle-windows-x86_64-20140702.zip--->本人的选择(Eclipse的忠实粉丝) android-bundle 二.安装平台和工具: 工具软件准备好后,接下来怎么办呢? 解压 adt-bundle-windows-x86_64-20140702.zip,可

ES6系列之开发环境搭建

前言: 1.es6的简单介绍: ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. 2.为什么要搭建ES6的开发环境? 因为至今各大浏览器厂商所开发的 JavaScript 引擎都还没有完成对 ES2015 中所有特性的完美支持,如果直接使用的话,会报错的.所以我们既想使用es6带来的新语法.新特性,又想让现在的浏览器支持es6

[开发工具] 史上最全系列之开发环境搭建之DDMS

原文链接:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=275774 一.简介 DDMS 的全称是DalvikDebug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务.提供测试设备截屏.查看特定进程正在运行的线程以及堆信息.Logcat.广播状态信息.模拟电话呼叫.模拟接收及发送SMS.虚拟地理坐标等服务. 二.启动 Eclipse中启动方法: 1.点击右上角DDMS图标 2.没有D