1.导包
  • Hibernate开发包
  •  
  • 数据库的驱动包
 
2.核心配置文件
 
核心配置文件(赋值到src下)
1.核心配置文件
对于hibernate的核心配置文件它有两种方式(选其中一种即可):
  1. hibernate.cfg.xml

     
  2. hibernate.properties
     
我们在开发中使用比较多的是hibernate.cfg.xml这种方式,原因它的配置能力更强,易于修改
我们主要讲解的是hibernate.cfg.xml配置
 
1.可以加载数据库相关信息
<!-- 配置关于数据库连接的四个项 driverClass url username password -->
           <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
           <property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property>
           <property name="hibernate.connection.username">root</property>
           <property name="hibernate.connection.password">123</property>
2.hibernate相关配置
 
<!-- 可以将向数据库发送的sql显示出来 -->
           <property name="hibernate.show_sql">true</property>
           <!-- 格式化sql -->
           <property name="hibernate.format_sql">true</property>
     
           <!-- hibernate的方言(告知链接的数据库类型MySQL为例) -->
           <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
 
 
3.加载映射配置文件
          
<!-- 配置hibernate的映射文件所在位置 -->
           <mapping resource="cn/itheima/domain/Customer.hbm.xml" />
 
 
 
对于hibernate.cfg.xml配置文件中的内容可以参考hibernate/project/etc/hibernate.properties的配置
 
配置下面这些属性后,我们可以进行表的自动创建
 
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
 
 
Create-drop 每次都会创建一个新的表,执行完成后删除。一般在测试中使用
Create   每次都会创建一个新的表,一般是在测试中使用
update 如果数据库中有表,不创建,没有表创建,如果映射不匹配,会自动更新表结构(只能添加)
validate  只会使用存在的表,并且会对映射关系进行校验.
 
 
3.映射配置文件
命名规范:类名.hbm.xml
它一般放置在实体类所在的包下。
这个配置文件的主要作用是建立表与类的映射关系。
    
1.统一声明包名,这样在<class>中就不需要写类的全名.

2.关于<class>标签配置

<class name="cn.itcast.domain.Customer" table="t_coustomer" catalog="hibernateTest">
    <id></id>
</class>
        name属性:类的全名称
        table 表的名称,可以省略,这时表的名称就与类名一致
        catalog属性:数据库名称 可以省略.如果省略,参考核心配置文件中url路径中的库名称
 
3.关于<id>标签
<!-- id用于描述主键 -->
<id name="id" column="id">
       <!-- 主键生成策略 -->
       <generator class="native"></generator>
</id>
首先它必须存在。<id>是用于建立类中的属性与表中的主键映射。
name 类中的属性名称
column 表中的主键名称  column它也可以省略,这时列名就与类中属性名称一致
length 字段长度
type属性 指定类型
<generator>它主要是描述主键生成策略.
 
4.关于<property>标签
           
<!-- 使用property来描述属性与字段的对应关系 -->
<property name="name" column="name" length="20"></property>
<property name="address" column="address" length="50"></property>
 
关于hibernate的映射文件中类型问题
          对于type属性它的取值,可以有三种:
               1.java中的数据类型
               2.hibernate中的数据类型
               3.SQL的数据类型
默认是hibernate中数据类型
4.获取session的工具类编写(可选)
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; /**
* HibernateUtils工具类
*
* @author TGV5
*
*/
public class HibernateUtils { private static Configuration config;
private static SessionFactory sessionFactory; static { config = new Configuration().configure();
sessionFactory = config.buildSessionFactory(); } /**
* 获取SessionFactory
*
* @return
*/
public static Session openSession() {
return sessionFactory.openSession();
} public static Session getCurrentSession() {
return sessionFactory.getCurrentSession();
} }
 
 
5.c3p0连接池的配置(虽然HIbernate带有默认的连接池,但是性能不如C3P0连接池)
1.导入Hibernate提供的3个C3p0的jar包
2.在核心配置文件hibernate.cfg.xml中添加提供者配置
 
    c3p0的配置的可以不进行配置,会有默认的配置
<!--  设置连接提供者 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- c3p0连接池的配置 -->
<property name="hibernate.c3p0.max_size">20</property><!-- 最大连接池 -->
<property name="hibernate.c3p0.min_size">5</property><!-- 最小连接数 -->
<property name="hibernate.c3p0.timeout">120</property> <!-- 超时 -->
<property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空闲连接 -->

附件列表

Hibernate5环境搭建的更多相关文章

  1. ssh运行环境搭建及测试

    一.运行环境 1.Spring环境 Spring是一站式开发框架,在SSH中主要有以下作用,就像一个大管家: 控制反转(Inversion of Control):类不再自己进行类创建,而是交给Spr ...

  2. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  3. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  4. rnandroid环境搭建

    react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...

  5. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  6. springMVC初探--环境搭建和第一个HelloWorld简单项目

    注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...

  7. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  8. Nexus(一)环境搭建

    昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...

  9. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

随机推荐

  1. 数据仓库搭建——Inmon与Kimball

    一.简介 1.1 历史 搞数据仓库这么久,实践中发现首先搭建数据集市,还是清洗数据之后,直接进入数据立方体(形成维度表和实施表)形成核心数据仓库层,是个选择题... 随后发现这其实涉及到了数据仓库的历 ...

  2. EL表达式和JSTL核心标签库

    1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某 ...

  3. DAY10-万物皆对象-2018-2-2

    许久没有写了,虽然每天都有在学,但是学的东西也少了,后面难度慢慢加大,学习速度也是变慢了.这是许多天积累下来的笔记,从第一次接触对象,到慢慢去了解,现在处于还待深入了解的状态.万物皆对象,那是不是说没 ...

  4. css层叠样式初学

    一.css简介 1.层叠样式表:叠加效果,不同css对同一html修饰,冲突部分,优先级高作用,不冲突部分,共同作用 2.css作用 (1)修饰html (2)替代了标签自身的颜色,字号等属性,提高复 ...

  5. 深入理解JAVA虚拟机之JVM性能篇---基础知识点(运行时数据区域)

    一. 运行数据区域划分 各个数据区域功能如下: 1. 程序计数器: 较小的一块内存空间,可以看做是当前线程所执行的字节码的行号指示器,每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立 ...

  6. DAY11-Java中的类--接上篇

    一.用户自定义类 1.写先出一个简单的Employee类作为例子说明. 代码如下: import java.time.LocalDate; /** * 自定义方法练习--测试 这个程序中包含了两个类E ...

  7. NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.web.servlet.view.InternalResourceViewResolver' available

    问题描述: 项目中需要配置多个视图解析器,所以使用ContentNegotiatingViewResolver来处理,在其内部设置了FreeMarkerViewResolver .InternalRe ...

  8. CTSC 2017 滚粗记

    CTSC 2017 滚粗记 结束好几天了一直没写. 明天就要去参加二轮省选了,填一下坑吧. 所以可能很多东西已经忘了 Day -2 [5.5 Fri] 周五晚上是其他学信竞的同学来机房的时间... 也 ...

  9. bzoj 4873: [Shoi2017]寿司餐厅 [最小割]

    4873: [Shoi2017]寿司餐厅 题意:略 唯一会做的... 一眼最小割 就是最大权闭合子图呀 \(s\rightarrow d_{positive} \rightarrow -d_{negt ...

  10. bzoj 4813: [Cqoi2017]小Q的棋盘 [树形背包dp]

    4813: [Cqoi2017]小Q的棋盘 题意: 某poj弱化版?树形背包 据说还可以贪心... #include <iostream> #include <cstdio> ...