一  配置过程

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——环境搭建的更多相关文章

  1. Hibernate之Hibernate环境搭建

    Hibernate之Hibernate环境搭建 一.Hibernate环境搭建的步骤 1.添加Hibernate && SQLServer 的Jar antlr-2.7.7.jar d ...

  2. Hibernate学习之——Hibernate环境搭建

    之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到 ...

  3. Hibernate环境搭建超详细

    前言 环境搭建其实可以简单到导入相关jar包即可. 但是对于学习来说,这个环境搭建的内容还是挺多的,目的是提供一个让我们如何快速学习和掌握类库的学习环境.作为程序猿,学习和使用类库是必须掌握的技能.如 ...

  4. SSH环境搭建之Hibernate环境搭建篇

    SSH环境搭建之Hibernate环境搭建篇 搭建有两种方式: 1.使用IntelliJ IDEA或者MyEclipse的逆向工程(关系模型 -> 对象模型),我使用的是IntelliJ IDE ...

  5. 一、hibernate环境搭建

    hibernate环境搭建 下载hibernate hibernate的jar 连接数据库的jar 解压hibernate,解压后目录结构 documentation :对应hibernate开发文档 ...

  6. Hibernate环境搭建+struts整合

    说明:本文档,是和struts2+hibernate的整合示例. lib下还有struts2的jar包,本示例没有显示.struts2的搭建参考struts2的环境搭建 一下载hibernate的ja ...

  7. Hibernate环境搭建

    Hibernate的环境搭建,主要步骤分为一下四步: 首先创建一个工程,在工程里创建一个实体类User,在这个实体类中必须包含无参的构造器,和这个类对属性的存取方法(getter and setter ...

  8. springmvc+spring-data-jpa+hibernate环境搭建与配置

    1.JPA诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,百度百科说是JDK为了实现ORM的天下归一,目前也是在按照这个方向发展,但是还没能完全实现.在ORM框架中,Hibernate是一支 ...

  9. struts2+hibernate环境搭建

    使用的是myeclipse2014,搭建比较简单,很多jar包不用自己引入,很多初始配置文件不需要自己写.后面会介绍ssh的搭建. 首先新建web project. 1.右键项目,如图所示 这个直接f ...

随机推荐

  1. yarn的安装与使用及与npm对应的命令

    在Nodejs环境下,通过npm install -g yarn 命令进行全局安装 例如:yarn versionyarn inityarn installyarn add vueyarn add v ...

  2. Echarts-各个配置项详细说明总结【转】

    1.图表标题 1 title: { 2 x: 'left', // 水平安放位置,默认为左对齐,可选为: 3 // 'center' ¦ 'left' ¦ 'right' 4 // ¦ {number ...

  3. Refs & DOM

    Refs 提供了一种访问在 render 方法中创建的 DOM 节点或 React 元素的方式. 在典型的 React 数据流中, 属性(props)是父组件与子代交互的唯一方式.要修改子组件,你需要 ...

  4. ubuntu安装php+mysql+apche

    步骤一,安装apache2 ? sudo apt-get install apache2 安装完成. 运行如下命令重启下: ? sudo /etc/init.d/apache2 restart 在浏览 ...

  5. .NET Framework反射总结

    概述 程序集的反射以及动态的创建类对象,是自动化编程常用的到知识原理,比如插件编程.模板设计模式,都可以采用发射机制动态的去创建实例化对象,实现类的动态加载.这里简单总结下,常用到的Framework ...

  6. ORM框架之------Dapper,Net下无敌的ORM

    一,介绍:Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这 ...

  7. js获取file控件的完整路径(上传图片预览)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. python全栈开发day76-博客主页

    一.昨日内容 1. 注册 1. form组件 - 基于正则的校验规则(手机号和邮箱) - 基于全局钩子判断两次密码是否一致 2. $.each(遍历的对象, function(){ this --&g ...

  9. Python_冒泡排序

    从小到大的排序:(最前面的数和一步步和后面的数比较,如果大于则交换,如果不大于则继续循环) 方法1: data = [65, 1, 45, 77, 3, 9, 43, 23, 7, 53, 213, ...

  10. net core体系-web应用程序-1VS2017构建一个简单的web

    使用vs2017,添加一个新项目-asp.net core web应用程序. 结构如图, wwwroot放了网站的静态资源如css.js.image文件: appsetting.json是应用程序的配 ...