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是一个终端应用商城,可以换国内 ...
随机推荐
- CSS基础知识:常见选择器示例
CSS(Cascading Style Sheet),中文译为层叠样式表,可以让设计者方便灵活地控制Web页面的外观表现.CSS是1996年由W3C审核通过并且推荐使用的.CSS的引入,就是为了使HT ...
- micropython esp8266 烧录
MicroPython 介绍 MicroPython 是一个 Python 3 语言的精简.高效实现,其包括 Python 标准库的一小部分,并经过优化,可以运行在微控制器和受限环境中运行. Micr ...
- ajax 多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题
多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题 浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉.当我们执行异步ajax的时候没有问 ...
- go语言实战教程:Redis实战项目应用
项目Redis配置 在实战项目中使用Redis功能,首先需要进行Redis配置.本实战项目中,关与Redis的配置项包含:连接类型.地址.端口.公共前缀.以上配置项被定义包含在Iris框架的redis ...
- react.js学习之路六
学习react中,我一直认为,总组件里面才有构造函数,但是我才发现我的观点是错误的,构造函数是可以出现在子组件里面的. 今天有一个错误是点击增加/减少input框里面 的数值 我一直在寻找input框 ...
- CentOS加入Windows域
CentOS加入Windows域,为减少操作已经提前关掉了selinux,防火墙.并且更改了主机名 yum install nss-pam-ldapd -y 第一步:更改主机名为linux.itxd ...
- 新公司,环境搭建,windows上的坑
1 在windows上安装nodejs环境,node -v 后可以看到版本号 2 在windows上安装nvm管理node的版本,可以对node版本自由切换,使用5.3.0版本的node 3 在win ...
- 条目二十四《当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择》
条目二十四<当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择> 当效率至关重要时,应该在map::operator[]和map::insert之 ...
- 玩转MongoDB
一.主从复制 1)首先主从服务器在启动的时候,分别要设置master.slave选项,对于slave可以启动中设置源,也可以在启动后设置源. 如:主:mongod --dbpath=/data/mon ...
- Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名
Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.N ...