Hibernate项目环境搭建
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项目环境搭建的更多相关文章
- [Hibernate 1]Hibernate的环境搭建
一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...
- 第一周博客之二---OA项目环境搭建及开发包部署
OA项目环境搭建 一个项目想要能够在开发人员打包好项目包之后进行测试,就必须进行项目测试环境的搭建,要根据开发工程师的开发环境采用不同的测试环境,以下只是浅谈下Java项目OA(办公自动化平台)的环境 ...
- mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...
- vue项目ide(vue项目环境搭建)
一.先介绍一下我接下来要做的项目 项目:ide可视化工具 技术应用: Vue2.0(js框架):https://cn.vuejs.org/ ElementUi(饿了吗ui框架基于vue的):http: ...
- react 开发 PC 端项目(一)项目环境搭建 及 处理 IE8 兼容问题
步骤一:项目环境搭建 首先,你不应该使用 React v15 或更高版本.使用仍然支持 IE8 的 React v0.14 即可. 技术选型: 1.react@0.14 2.bootstrap3 3. ...
- Vue 项目环境搭建
Vue项目环境搭建 ''' 1) 安装node 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm install -g cnp ...
- Django项目: 项目环境搭建 ---- 一、创建django项目
项目环境搭建 一.创建django项目 1.创建python虚拟环境 在虚拟机上创建python虚拟环境,因为实际项目部署,实在linux mkvirtualenv -p /usr/bin/pytho ...
- React全家桶打造共享单车后台管理系统项目_第1篇_项目环境搭建_首页编写
1.项目介绍 项目github地址:https://github.com/replaceroot/React-manageSystem 项目整体架构: 课程大纲: 第一章:React基础知识 ...
- vue项目环境搭建与组件介绍
Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...
随机推荐
- vmware之VMware Remote Console (VMRC) SDK(一)
通过console可以实现类似远程桌面的功能,但它的实现方式和远程桌面不同,一般来说远程桌面必须要有网络支持,在机器关闭或者启动过程中无法连接.而console是通过esx的虚拟化组件实现远程桌面.在 ...
- Linux中VMware虚拟机增加磁盘空间的扩容操作
用VMwareware虚拟机安装的Red Hat Enterprise Linux系统剩余空间不足,造成软件无法正常安装.如果重新装一遍系统就需要重新配置好开发环境和软件的安装配置.通过上网搜集的资料 ...
- C#设计模式--工厂模式和抽象工厂模式
话说有三大潮牌公司一直相互PK,有一天举办了一个活动让这三大公司来一个PK,我们来看看哪家公司的上衣做出来好看穿得舒服 现在我们有一个上衣的抽象产品让三大公司来做 //抽象产品 public inte ...
- Qt学习(二):项目学习
1. 概述 Qt做UI设计后,通常会生成Form Files文件夹下的ui文件.Generated File文件夹下的ui_xxx等头文件和源文件.Header Files文件夹下的头文件.Sourc ...
- zTree动态加载
@{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport" ...
- CF|codeforces 280C Game on Tree
题目链接:戳我 大概题意:给一棵树,然后每次可以删除一个子树,问你期望多少次能把整棵树都删完? 概率和期望是个神仙..我不会 对于这个题,我们要有一个前置知识--期望的线性性,就是说总期望的值等于各个 ...
- Sublime text3!行首,行尾,批量编辑!
1.Windows下的操作操作步骤 1.Ctrl + H 2.打开正则,输入^,然后Find All,查找所有的行首 3.打开正则,输入$,然后Find All,查找所有的行尾 4.光标闪动,就可以进 ...
- Sumsets(数学)
Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 14964 Accepted: 5978 Description ...
- 原生态js展开收缩
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 十大javaScript框架
http://blog.163.com/hongshaoguoguo@126/blog/static/180469812012102645931862/ Prototype特点:一个非常优雅的JS库, ...