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. Android-Activity-startActivityForResult

    之前 Android-Intent意图传递数据,的博客讲解了,一个Activity 跳转 到另外一个Activity 可以把数据带过去 Android还提供了一种方式,一个Activity 跳转 到另 ...

  2. Replication--Alwayson+复制发布

    场景:主服务器:RepServer1从服务器:RepServer2监听者:RepListener分发库:DisServer发布数据库:RepDB1配置:1>设置DisServer为分发服务器,在 ...

  3. asp.net—— 基础之截取字符串

    在实际开发中有时难免会遇到需要获取某个字符串中的某些字符串,这里我们可以用到字符串截取的办法. 截取字符串的方法很容易(暂不包含中文字符串),只要稍微有点.net基础的人看了都能看懂. /// < ...

  4. C#设计模式--工厂模式之简单模式

    简单工厂模式定义:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品 ...

  5. 南昌网络赛J. Distance on the tree 树链剖分+主席树

    Distance on the tree 题目链接 https://nanti.jisuanke.com/t/38229 Describe DSM(Data Structure Master) onc ...

  6. 初学python - 字典

    字符串转为字典 import astline=input()linedict=ast.literal_eval(line) 遍历字典 for key in linedict: value=linedi ...

  7. centos7 修改网卡eth0 关闭ipv6 问题总结

    1. 首先关闭"NetworkManager" 服务. 然后编辑网卡的配置文件将里面的NAME DEVICE项修改为eth0 vim /etc/sysconfig/network- ...

  8. django中orm的简单操作

    数据库模型 from django.db import models # Create your models here. from django.db import models # Create ...

  9. [ActionScript 3.0] 十进制与二进制,十六进制等数据之间的相互转换

    将十进制转换为二进制,方法是:将数字除以2,根据余数来从右往左排列二进制的位数,如下以十进制数10为例 10除以2得5,余数为0,故第一个位置为0: 5除以2得2,余数为1,故第二个位置为1: 2除以 ...

  10. [Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递

    本文将为你演示,如何使用Notification Center进行消息的传递.通知中心是一个调度消息通知的类,采用单例设计模式,实现数据传递,回调等功能.首先打开自定义视图的代码文件(CustomVi ...