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. 创建 ASP.NET Web API的Help Page

    转:创建WEBAPI项目 转:添加测试API中的ASP.NET Web API帮助页面

  2. Inno Setup 编译器

    Inno Setup 编辑 Inno Setup用Delphi写成,其官方网站同时也提供源程序免费下载.它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀.In ...

  3. leetcode 移动零

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 这道题比较好想出来 /** ...

  4. IOC简洁说明

    what is ioc: 控制注入,是一种设计模式 the benefits of using this: 降低耦合度 什么是DI 什么是依赖? 当一个类需要另一个类协作来完成工作的时候就产生了依赖 ...

  5. C# 根据实体类的属性动态生成字符串

    情景: 目前有两个实体类:Student,ClassInfo. public class Student { public string Name { get; set; } public strin ...

  6. dataframe初始化

  7. TL431的应用

    TL431的应用 对于基准源,大部分人都认识TL431,因为它物美价廉,高精度,满足一般的应用场合,价格低至1毛钱,就算是ST高端品牌的也是几毛钱.这仅仅是其中一点,还有一点是因为它不仅仅可以作为基准 ...

  8. CryptoJS导入sha加密包出现错误

    Uncaught TypeError: Cannot read property 'extend' of undefined at sha224.js:12 at sha224.js:60 Uncau ...

  9. CAS客户端整合(一) Discuz!

    有好几个系统需要接入CAS,所以登录模块统统需要重构 版本 CAS服务端是Java的 Cas-server-4.0 CAS的php客户端 是 phpCAS-1.2.0 论坛版本是 Discuz!X3. ...

  10. LoadRunner12_脚本中运行JavaScript

    版权声明:本文为博主原创文章,未经博主允许不得转载. [系统及软件配置] LR版本:12.53 JDK版本:1.8 函数:web_js_run,该函数仅在LR12版本提供支持,LR11不支持JavaS ...