初识hibernate——环境搭建
一 配置过程
1. 创建一个项目
2. 导包
required里的包
optional里的c3p0连接池的三个包
数据库驱动包
Junit
3.创建Hibernate的配置文件(hibernate.cfg.xml)
4.创建持久化的实体类对象User
5.创建对象与关系型数据库之间的映射(user.hbm.xml或使用注解)
6.通过Hibernate访问数据库
二 示例
配置文件实现:
1.创建项目hibernate-01
2.导入需要的包

3.创建Hibernate的配置文件(hibernate.cfg.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库连接 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/work</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property> <property name="current_session_context_class">thread</property> <!-- 连接池Jdbc connection pool C3P0-->
<property name="connection.pool_size">1</property>
<!-- 方言dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 是否显示sql语句Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property> <!-- 同步程序与数据库中的表 -->
<property name="hbm2ddl.auto">update</property> <!-- 映射文件配置,配置文件名必须包含其相对于根的全路径 -->
<mapping resource="com/jn/pojo/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
4.创建持久化的实体类对象User
package com.jn.pojo;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
5.创建对象与关系型数据库之间的映射(user.hbm.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
<!-- 配置User类与数据库表user之间的映射关系 -->
<class name="com.jn.pojo.User" table="user">
<!-- 主键的配置需要使用id标签
在配置主键时: 实体类中属性名, 实体类中属性的类型
指定主键的创建规则
-->
<id name="id" type="int">
<column name="id"></column>
<generator class="native"></generator>
</id>
<!-- 配置普通属性 -->
<property name="name" type="java.lang.String">
<column name="name" ></column>
</property> <property name="age" type="int">
<column name="age" ></column>
</property> </class>
</hibernate-mapping>
6.通过Hibernate访问数据库:测试类MainTest.java
package com.jn.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test; import com.jn.pojo.User; public class MainTest { @Test
public void test(){ //1. 加载配置文件, 创建配置对象
/**
* 默认情况下, 如果configure方法调用的是无参的, 则会加载SRC文件夹下的名字为hibernate.cfg.xml的配置文件
* 如果配置文件名不是hibernate.cfg.xml, 那么可以在configure方法中指定配置文件
*/
Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); //2. 创建SessionFactory
ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); SessionFactory sessionFactory = configuration.buildSessionFactory(sr); //3. 获取Session对象
/**
* sessionFactory.getCurrentSession(), 获取当前线程的Session对象
*/
Session session = sessionFactory.openSession(); //4. 操作数据库
// 开启事务
session.beginTransaction(); // 创建实体类对象
User user = new User(); user.setName("tom");
user.setAge(23); // 将实体类对象保存到数据库中
/**
* save方法会将实体类对象, 保存到数据库的中表中.
* 在这个过程中, 代码中不需要写SQL语句, 它的insert语句是由Hibernate根据ORM的关系映射自动创建了
*/
session.save(user); // 提交事务
session.getTransaction().commit(); //5. 关闭对象
session.close(); sessionFactory.close(); }
}
7.项目结构:

注解实现:
1.创建项目hibernate-02
2.导入需要的包

3.创建Hibernate的配置文件(hibernate.cfg.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库连接 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/work</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property> <property name="current_session_context_class">thread</property> <!-- 连接池Jdbc connection pool C3P0-->
<property name="connection.pool_size">1</property>
<!-- 方言dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 是否显示sql语句Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property> <!-- 同步程序与数据库中的表 -->
<property name="hbm2ddl.auto">update</property> <!-- 映射文件配置,配置文件名必须包含其相对于根的全路径 -->
<mapping class="com.jn.pojo.User"/>
</session-factory>
</hibernate-configuration>
4.创建持久化的实体类对象User
package com.jn.pojo; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table; @Entity
@Table(name="user")
public class User { private int id;
private String name;
private int age; @Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} @Column(nullable=true)
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Column(nullable=true)
public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
5.创建对象与关系型数据库之间的映射(User中注解实现)
6.通过Hibernate访问数据库:测试类MainTest.java
package com.jn.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test; import com.jn.pojo.User; public class MainTest { @Test
public void test(){ //1. 加载配置文件, 创建配置对象
/**
* 默认情况下, 如果configure方法调用的是无参的, 则会加载SRC文件夹下的名字为hibernate.cfg.xml的配置文件
* 如果配置文件名不是hibernate.cfg.xml, 那么可以在configure方法中指定配置文件
*/
Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); //2. 创建SessionFactory
ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); SessionFactory sessionFactory = configuration.buildSessionFactory(sr); //3. 获取Session对象
/**
* sessionFactory.getCurrentSession(), 获取当前线程的Session对象
*/
Session session = sessionFactory.openSession(); //4. 操作数据库
// 开启事务
session.beginTransaction();
User user = (User) session.get(User.class, 1); //获取id为1的user
System.out.println(user);
user.setAge(21);
System.out.println(user);
// 提交事务
session.getTransaction().commit(); //5. 关闭对象
session.close(); sessionFactory.close(); }
}
7.项目结构:

三 Hibernate开发步骤—API应用步骤
l 创建hibernate配置,读取Hibernate配置文件及信息
l 用读取的配置信息生成SessionFactory对象
l 从SessionFactory对象获取 一个Session对象
l 用Session对象生成事务
l 通过Session对象的方法进行操作
l 提交或回滚事务
l 释放session and session factory资源
四 hibernate的优点
(1)首先是开源和免费的License,方便功能定制,需要时可以查看源码或者修改源码。
(2)其次它是一个轻量级封装框架,避免引入过多复杂代码,减轻程序员调试负担。
(3)再次它是一个有可扩展性、API开放的框架,可以在功能不够用时进行其功能的扩展。
(4)最后就是Hibernate的程序开发使用者众多,促使产品有稳定的发展保证。
初识hibernate——环境搭建的更多相关文章
- Hibernate之Hibernate环境搭建
Hibernate之Hibernate环境搭建 一.Hibernate环境搭建的步骤 1.添加Hibernate && SQLServer 的Jar antlr-2.7.7.jar d ...
- Hibernate学习之——Hibernate环境搭建
之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到 ...
- Hibernate环境搭建超详细
前言 环境搭建其实可以简单到导入相关jar包即可. 但是对于学习来说,这个环境搭建的内容还是挺多的,目的是提供一个让我们如何快速学习和掌握类库的学习环境.作为程序猿,学习和使用类库是必须掌握的技能.如 ...
- SSH环境搭建之Hibernate环境搭建篇
SSH环境搭建之Hibernate环境搭建篇 搭建有两种方式: 1.使用IntelliJ IDEA或者MyEclipse的逆向工程(关系模型 -> 对象模型),我使用的是IntelliJ IDE ...
- 一、hibernate环境搭建
hibernate环境搭建 下载hibernate hibernate的jar 连接数据库的jar 解压hibernate,解压后目录结构 documentation :对应hibernate开发文档 ...
- Hibernate环境搭建+struts整合
说明:本文档,是和struts2+hibernate的整合示例. lib下还有struts2的jar包,本示例没有显示.struts2的搭建参考struts2的环境搭建 一下载hibernate的ja ...
- Hibernate环境搭建
Hibernate的环境搭建,主要步骤分为一下四步: 首先创建一个工程,在工程里创建一个实体类User,在这个实体类中必须包含无参的构造器,和这个类对属性的存取方法(getter and setter ...
- springmvc+spring-data-jpa+hibernate环境搭建与配置
1.JPA诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,百度百科说是JDK为了实现ORM的天下归一,目前也是在按照这个方向发展,但是还没能完全实现.在ORM框架中,Hibernate是一支 ...
- struts2+hibernate环境搭建
使用的是myeclipse2014,搭建比较简单,很多jar包不用自己引入,很多初始配置文件不需要自己写.后面会介绍ssh的搭建. 首先新建web project. 1.右键项目,如图所示 这个直接f ...
随机推荐
- webpack学习笔记--多种配置类型
除了通过导出一个 Object 来描述 Webpack 所需的配置外,还有其它更灵活的方式,以简化不同场景的配置. 下面来一一介绍它们. 导出一个 Function 在大多数时候你需要从同一份源代码中 ...
- delphi使用sqlite数据库时的中文路径问题
https://blog.csdn.net/yuehaiyang/article/details/4184198 如果数据库所在的路径是中文路径的话,根本运行不起来,会报错,因为sqlite用的是ut ...
- cuda by example【读书笔记2】
常量内存 用常量内存来替换全局内存可以有效的减少内存带宽 __constant__修饰符标识常量内存,从主机内存复制到GPU上的常量内存时,需要特殊版本的cudaMemcpy(): cudaMemcp ...
- HTML学习之给div高度设置百分比不生效的问题
这几天在学习HTML的知识,今天想做一个极为简单的页面,就是分为头部,内容和底部,本来用三个div即可,可是给div高度设置百分比时发现不生效,具体页面如下,非常简单. 下面是html部分: < ...
- 支付宝 app支付 沙盘使用
文档说明 沙箱测试: App支付沙箱接入注意点 1.app支付支持沙箱接入:在沙箱调通接口后,必须在线上进行测试与验收,所有返回码及业务逻辑以线上为准:2.app支付只支持余额支付,不支持银行卡.余额 ...
- Codeforces 666E E - Forensic Examination SA + 莫队 + 线段树
E - Forensic Examination 我也不知道为什么这个复杂度能过, 而且跑得还挺快, 数据比较水? 在sa上二分出上下界, 然后莫队 + 线段树维护区间众数. #include< ...
- k8s 相关命令
kompose convert -f docker-compose-pro.yml k8s数据卷挂载: https://blog.csdn.net/wlhdo71920145/article/deta ...
- BZOJ1433 [ZJOI2009]假期的宿舍 二分图匹配 匈牙利算法
原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html 题目传送门 - BZOJ1433 题解 我们理一理题目. 在校的学生,有自己的床,还可以睡 ...
- 05. Matplotlib 1 |图表基本元素| 样式参数| 刻度 注释| 子图
1.Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高效且有较丰富的图表 ...
- String.IsNullorEmpty()方法的使用
!= null 就是不为null !string.IsNullOrEmpty 不是null且不是""(string.Empty)