初识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 ...
随机推荐
- Ueditor设置默认字体、字号、行间距,添加字体种类(转)
Ueditor默认字体.字号.行间距的修改: ueditor默认字号是16号,默认字体为sans-serif,默认行间距为5px,如下图所示: 首先,修改ueditor.all.js文件中如上图红框中 ...
- dubbo的工作原理
dubbo工作原理 第一层:service层,接口层,给服务提供者和消费者来实现的 第二层:config层,配置层,主要是对dubbo进行各种配置的 第三层:proxy层,服务代理层,透明生成客户端的 ...
- 标准C语言实现基于TCP/IP协议的文件传输
TCP/IP编程实现远程文件传输在LUNIX中一般都采用套接字(socket)系统调用. 采用客户/服务器模式,其程序编写步骤如下: 1.Socket系统调用 为了进行网络I/O,服务器和客户机两 ...
- Codeforces 513E2 Subarray Cuts dp (看题解)
我们肯定要一大一小间隔开来所以 把式子拆出来就是类似这样的形式 s1 - 2 * s2 + 2 * s3 + ...... + sn 然后把状态开成四个, 分别表示在顶部, 在底部, 在顶部到底部的中 ...
- jenkins(3): jenkins执行shell命令
参考: https://www.cnblogs.com/reblue520/p/7146693.html 1. 执行 本地 shell命令或者脚本 是在一个构建中的 bulid 选项卡. 执行本地中 ...
- form表单利用iframe高仿ajax
html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 爬虫3 requests基础之下载图片用content(二进制内容)
res = requests.get('http://soso3.gtimg.cn/sosopic/0/11129365531347748413/640') # print(res.content) ...
- axios 进行类库封装
,,,,,, ,) { // 与后台约定的成功状态码 callback && callback(result) } else { // 错误处理,优先以自定义的的handle进行处理, ...
- 问题 L: An Invisible Hand - (2018年第二阶段个人训练赛第三场)
题目描述 There are N towns located in a line, conveniently numbered 1 through N. Takahashi the merchant ...
- nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
在重启nginx服务的时候,出现了这个错误. [root@izuf68g6a94fj32w0afx00z etc]# nginx -c /var/run/nginx/nginx.pid nginx: ...