1、首先在eclipse里面新建一个Java工程。

2、在数据库中新建一个数据库(无需创建表,有Hibernate生成)。

  

3、在项目中导入Hibernate所依赖的jar包,该jar包可以在此下载:Hibernate所需jar包

  

4、创建一个实体类。

  

public class UserEntity {
/*
* Hibernate要求在实体中必须要有一个
* 属性值唯一的属性。
* 在该实体中uid作为id,是唯一的
* */
private int uid;
private String name;
private String pwd;
private int age;
/**
* @return the uid
*/
public int getUid() {
return uid;
}
/**
* @param uid the uid to set
*/
public void setUid(int uid) {
this.uid = uid;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the pwd
*/
public String getPwd() {
return pwd;
}
/**
* @param pwd the pwd to set
*/
public void setPwd(String pwd) {
this.pwd = pwd;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
} }

5、编写实体映射文件

  使用配置文件实现映射关系。

  (1)创建xml格式的配置文件。

    - 映射配置文件名称和位置没有固定要求。

    - 建议:在实体类所在包里面创建,实体类名称.hbm.xml。

  (2)配置是是xml格式,在配置文件中首先引入xml约束。

    -在hibernate里面引入的约束dtd约束。

<?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>
<!--
class 里面写实体和表的映射关系
name 里面是实体类的全路径
table 是数据表的名字
-->
<class name ="com.jack.entity.UserEntity" table="t_user">
<!--
hibernate要求实体有一个属性值唯一的属性
也要求数据表中有一个值唯一的字段
-->
<!--
name 实体里面的id属性的名称(必须要一致)
column 生成的数据表中字段的名称(可以随便起名,也可以不写,
不写默认生成的和name的值一致)
-->
<id name="uid" column="uid">
<!--
generator 用来配置数据库id的增长策略
native表示 主键自增长
-->
<generator class="native"></generator>
</id> <!--
property 用来配置其他属性
name 实体类里面属性的名称(必须一致)
column 生成的数据表中字段的名称(可以随便起名,也可以不写,
不写默认生成的和name的值一致)
-->
<property name="name" column="username"></property>
<property name="pwd" column="password"></property>
<property name="age" column="age"></property>
</class>
</hibernate-mapping>  

6、创建Hibernate的核心配置文件。

  (1)核心配置文件格式xml,但是核心配置文件名称和位置固定的。

    - 位置:必须src下面。

    - 名称:必须hibernate.cfg.xml。

 (2)引入dtd约束。

 (3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载。

    

<?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标签内
-->
<session-factory>
<!--
第一部分:写数据库的配置 该部分必须要配置
-->
<!-- 数据库驱动配置 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库连接URL -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernatetest</property>
<!-- 数据库连接用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库连接密码 -->
<property name="hibernate.connection.password">root</property> <!--
第二部分:hibernate配置 该部分可以省略
-->
<!-- 在控制台打印sql语句 -->
<property name="hibernate.show_sql"> true</property>
<!-- 打印sql时格式化该语句输出 -->
<property name="hibernate.format_sql">true</property>
<!-- 配置自动生成表 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 配置数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!--
第三部分:引入映射配置文件 该部分必须要配置
resource 映射文件的相对路径。
-->
<mapping resource="com/jack/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

7、编写测试代码

  

public class HibernateTest {

    @Test
public void Test1(){
//1、创建configuration对象
Configuration cfg = new Configuration();
//2、加载核心配置文件hibernate.cfg.cxml
cfg.configure();
//3、创建SessionFactory对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//4、创建session对象
Session session = sessionFactory.openSession();
//5、开启事物
Transaction tx = session.beginTransaction();
//6、编写测试代码
UserEntity userEntity = new UserEntity();
userEntity.setName("张三");
userEntity.setPwd("12345");
userEntity.setAge(25);
session.save(userEntity);
//7、提交事物
tx.commit();
//8、释放资源
session.close();
sessionFactory.close();
} }

8、项目优化

  创建sessionFactory过程中,这个过程特别耗资源的.

(1)在hibernate操作中,建议一个项目一般创建一个sessionFactory对象.

 (2)解决方法:写工具类,写静态代码块实现.

public class HibernateUtils {

    private static Configuration configuration= null;
private static SessionFactory sessionFactory = null; /**
* 静态代码块,在类加载时只会执行一次,这样就可以保证只有一个SessionFactory对象
*/
static{
configuration = new Configuration();
configuration.configure();
sessionFactory = configuration.buildSessionFactory();
} /**
* 提供一个返回SessionFactory对象的方法
*/ public static SessionFactory getFactory(){
return sessionFactory;
}
}

9、测试结果

  测试执行成功,并且在控制台打印出来了格式化后的sql语句。

  

  数据库按我们在映射文件中配置的生成了表。并插入了一条记录。

  数据库字段的类型进行了自动匹配,主键是自增长类型。

项目源代码:Hibernate01.zip

Hibernate项目环境搭建的更多相关文章

  1. [Hibernate 1]Hibernate的环境搭建

    一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...

  2. 第一周博客之二---OA项目环境搭建及开发包部署

    OA项目环境搭建 一个项目想要能够在开发人员打包好项目包之后进行测试,就必须进行项目测试环境的搭建,要根据开发工程师的开发环境采用不同的测试环境,以下只是浅谈下Java项目OA(办公自动化平台)的环境 ...

  3. mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装

    一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...

  4. vue项目ide(vue项目环境搭建)

    一.先介绍一下我接下来要做的项目 项目:ide可视化工具 技术应用: Vue2.0(js框架):https://cn.vuejs.org/ ElementUi(饿了吗ui框架基于vue的):http: ...

  5. react 开发 PC 端项目(一)项目环境搭建 及 处理 IE8 兼容问题

    步骤一:项目环境搭建 首先,你不应该使用 React v15 或更高版本.使用仍然支持 IE8 的 React v0.14 即可. 技术选型: 1.react@0.14 2.bootstrap3 3. ...

  6. Vue 项目环境搭建

    Vue项目环境搭建 ''' 1) 安装node 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm install -g cnp ...

  7. Django项目: 项目环境搭建 ---- 一、创建django项目

    项目环境搭建 一.创建django项目 1.创建python虚拟环境 在虚拟机上创建python虚拟环境,因为实际项目部署,实在linux mkvirtualenv -p /usr/bin/pytho ...

  8. React全家桶打造共享单车后台管理系统项目_第1篇_项目环境搭建_首页编写

    1.项目介绍 项目github地址:https://github.com/replaceroot/React-manageSystem  项目整体架构: 课程大纲:     第一章:React基础知识 ...

  9. vue项目环境搭建与组件介绍

    Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...

随机推荐

  1. EasyUI combobox动态增加选择项

    有需求需要动态的为combobox增加可选项,后来解决方案如下 html如下 <select id="workerList"></select> js 如下 ...

  2. Shapefile点图层转换为Shapefile线图层

    在Oracle数据表转换为Shapefile(一)和Oracle数据表转换为Shapefile(二)两篇文章中,分别介绍了两种不同的根据Oracle数据表生成Shapefile点图层的方法.本文在此基 ...

  3. thinkphp里数据嵌套循环

    做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的. thinkphp官网给出的文档为: <volist name="list" id=" ...

  4. 为web文件夹添加IIS应用程序池用户权限

    在文件夹或文件右键属性—>安全——>编辑——>添加——>输入IIS APPPOOL\应用程序池名,确定即可将IIS 7或7.5.8的应用程序池虚拟用户添加到权限控制里面,然后再 ...

  5. Delphi32位程序拷贝system32目录中文件解决方法!

    源码下载:http://download.csdn.net/detail/sunylat/9740352 unit Unit1; interface uses Winapi.Windows, Wina ...

  6. PHP内核研究:HASH表和变量 【转】

    PHP HASH表 在PHP中,所有的数据 无论变量,常量,类,属性 都用Hash表来实现. 先要说说 HASH表 typedef struct bucket { ulong h;           ...

  7. [ActionScript 3.0] 与C#通信方法fscommand

    与C#通信的方法之一 flash.system.fscommand(command:String, args:String=""):void, command 传递给主机应用程序的 ...

  8. Squid代理服务器(二)——配置Squid服务器

    一.传统代理 (一)需求分析 局域网内,客户机访问自家的Web服务器,通过Squid代理服务器访问Web服务器,再由Squid反馈给客户机;在Squid主机上,构建Squid为客户机访问网站提供代理服 ...

  9. [译文]casperjs的API-colorizer模块

    colorizer模块包含了一个Colorizer类,它能够生成一个标准化的颜色字符串: var colorizer = require('colorizer').create('Colorizer' ...

  10. Flink学习笔记:Flink API 通用基本概念

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...