<?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>
<!-- 注册驱动 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- mysql的用户名 -->
<property name="connection.username">root</property>
<!-- mysql的用户密码 -->
<property name="connection.password">123456</property>
<!-- 连接mysql的某库 -->
<property name="connection.url">jdbc:mysql://localhost:3306/user</property>
<!-- 控制台输出sql -->
<property name="show_sql">true</property>
<!-- 格式化输出的sql -->
<property name="format_sql">true</property>
<!-- 自动提交事务 -->
<property name="connection.autocommit">true</property>
<!-- 创建sql表
update:如果没有表,则创建一个。如果有表,而且表结构一致,那么不改变表。如果表结构不一样,会添加sql表缺少的列,多余的也不会删除。
create:不管sql表有没有存在,都会重新创建表。
create-drop:在create的基础上,每次关闭虚拟机时都会把表删除了。
validate:效验sql表,如果一致,则没有反应,如果不一致了,会抛出异常。
-->
<property name="hbm2ddl.auto">update</property>
<!-- 将Session与线程绑定=> 只有配置了该配置,才能使用getCurrentSession -->
<property name="current_session_context_class">thread</property>
<!-- 数据库方言配置 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 导入映射文件 -->
<mapping resource="com/xiaostudy/demo/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

 <?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"> <!-- 导入bean所在的包路径,如果这里没有写,那么下面用到的类就要写全路径 -->
<hibernate-mapping package="com.xiaostudy.demo">
<!-- 把bean中的类名和mysql中的表名对应,
dynamic-insert不写的话默认是false,这里设置为true,意思就是插入到数据库时,为null的数据就不要插入
dynamic-update不写的话也是默认false,这里设置为true,意思就是当改变数据库的数据时,不更改的列不用操作
-->
<class name="User" table="users" dynamic-insert="true" dynamic-update="true">
<!-- bean中id和mysql中主键对应 -->
<id name="id" column="id">
<!-- generator:主键生成策略
1.increment 数据库自己生成主键. 先从数据库中查询最大的ID值,将ID值加1作为新的主键
2.identity 依赖于数据的主键自增功能
3.sequence 序列,依赖于数据中的序列功能(Oracle).
4.hilo(纯了解,永远用不到) : Hibernate自己实现序列的算法,自己生成主键. (hilo算法 )
5.native 自动根据数据库判断,三选一. identity|sequence|hilo
6.uuid 生成32位的不重复随机字符串当做主键
7.assigned 自己指定主键值. 表的主键是自然主键时使用. -->
<generator class="native"></generator>
</id>
<!-- bean中的属性和mysql中的字段对应 -->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
</class>
</hibernate-mapping>

HibernateUtils.java工具类

 package com.xiaostudy.util;

 import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session; public class HibernateUtils {
// 定义一个SessionFactory
private static SessionFactory sessionFactory; // 静态代码块,当类加载时,会只执行一次
static {
// 加载配置文件,这里没有参数,是因为hibernate.cfg.xml文件是默认放在src目录下
Configuration conf = new Configuration().configure();
// 通过配置文件获取一个SessionFactory
sessionFactory = conf.buildSessionFactory();
// 当退出java虚拟机时,自动关闭资源
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
sessionFactory.close();
}
}));
} // 每次都获取新的一个Session
public static Session openSession() {
return sessionFactory.openSession();
} // 获取当前线程的Session,多用于处理事务
public static Session getCurrentSession() {
return sessionFactory.getCurrentSession();
} }

建议参考文章:https://www.cnblogs.com/konrad/p/6391962.html


hibernate配置文件的详解的更多相关文章

  1. ssh2的application.xml配置文件配置详解

    ssh2的application.xml配置文件配置详解   1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="clas ...

  2. (转)Hibernate的配置详解

    http://blog.csdn.net/yerenyuan_pku/article/details/65041077 在<Hibernate快速入门>一文中,我有讲到Hibernate的 ...

  3. Nginx 主配置文件参数详解

    Nginx 主配置文件参数详解 Nginx 安装完毕后,会有响应的安装目录,安装目录里 nginx.conf 为 nginx 的主配置文件, ginx 主配置文件分为 4 部分,main(全局配置). ...

  4. CentOS网络接口配置文件ifcfg-eth详解

    ======CentOS网络接口配置文件ifcfg-eth详解====== 文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/ne ...

  5. Hibernate Session & Transaction详解

    Hibernate Session & Transaction详解 HIbernate中的Session Session是JAVA应用程序和Hibernate进行交互时使用的主要接口,它也是持 ...

  6. Apache2 httpd.conf配置文件中文版详解

    Apache2 httpd.conf配置文件中文版详解## 基于 NCSA 服务的配置文件.##这是Apache服务器主要配置文件.#它包含服务器的影响服务器运行的配置指令.#参见以取得关于这些指令的 ...

  7. hibernate enum映射详解

    hibernate enum映射详解 在这里介绍注解的形式,如果想要了解XML配置的方式,可以自行查找相关资料. 例如以下Entity @Entity @Table(name = "t_us ...

  8. MySQL-5.5.32 配置文件优化详解

    目录 MySQL-5.5.32 配置文件优化详解 一.配置文件说明 2.my-medium.cnf 3.my-large.cnf 4.my-huge.cnf 5.my-innodb-heavy-4G. ...

  9. hibernate缓存机制详解

    hiberante面试题—hibernate缓存机制详解   这是面试中经常问到的一个问题,可以按照我的思路回答,准你回答得很完美.首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再 ...

随机推荐

  1. cxGrid 使用指南 1

    1:cxgrid是应该数据关联的控件,类似dbgrid.2:一般用来查阅表信息,如果要修改的话,直接在上面编辑或添加 非常不方便通常要放几个EDit来对选中的记录进行编辑或添加记录. 因为表一般都有主 ...

  2. iOS 7.1 UITapGestureRecognizer 不好用的解决办法

    UITapGestureRecognizer *tap3 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(o ...

  3. [Algorithms] Topological Sort

    Topological sort is an important application of DFS in directed acyclic graphs (DAG). For each edge ...

  4. Java实现 Hessian接口测试

    Hessian接口测试简单单例 Hessian是基于Binary –RPC(二进制远程过程调用协议)进行通讯. Hessian就是把Java对象转变成字节序列,然后通过Http传输到目标服务器上(主机 ...

  5. springmvc控制器controller单例问题

    springmvc controller默认的是单例singleton的,具体可以查看注解scope可以一目了然. 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次 ...

  6. SQL与Access使用查询结果集更新表

    SQL语法 update 表1 set 字段1 = bb.字段1 from 表1 as aa, (select 字段1,字段2 from 表) bb where aa.字段2 = bb.字段2 Acc ...

  7. USB 3.0:那些你需要知道的事

    在过去14年来,通用串行总线(USB)已成为计算机和外部设备之间的标准接口.不管是移动硬盘.相机.鼠标.键盘.打印机,还是扫描仪,它们和计算机之间的数据传输一般均采用USB线.USB接口也的确是“通用 ...

  8. spring 实现定时任务

    spring实现定时任务超级简单.比使用quartz简单,比使用timer强大.如下是一个简单的springboot任务,启用了定时任务 @SpringBootApplication@Componen ...

  9. 【我的Android进阶之旅】 Android Studio插件之Jenkins插件介绍

    一Jenkins插件功能介绍 1Jenkins任务列表 2切换Jenkins分组 3构建Jenkins任务 4进入构建Jenkins任务的页面 5进入最后一次构建Jenkins任务的页面 6增加Jen ...

  10. (转)专项:Android 内存泄露实践分析

    今天看到一篇关于Android 内存泄露实践分析的文章,感觉不错,讲的还算详细,mark到这里. 原文发表于:Testerhome: 作者:ycwdaaaa ;  原文链接:https://teste ...