<?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. $routeParams传递路由参数

    $routeParams传的值是一个对象数组. 案例: index.html <!DOCTYPE html> <html lang="zh-cn" data-ng ...

  2. Debug技巧:条件断点和远程Debug

    一.断点: 1.条件断点 本以为条件断点很难,其实就这样. 二.远程Debug 1.首先看服务器是不是在Debug模式下工作 不是则进行(tomcat/bin/catalina.sh)配置. -Xde ...

  3. Django中字典在html中的遍历

    Django中字典在html中的遍历 如:在view中定义的函数 info = {'} context = {"info": info} 要在html中变量出info的信息(注意i ...

  4. 14.wamp自定义网站根目录

    1.首先打开Apache 中的配置文件httpd.conf crtl+f 搜索  documentroot  ,在找到的目录中将目录修改自己的网站的目录,注意\ 与/ 2.在向下移动,找到<Di ...

  5. Json对象与Json字符串的转化

    1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转 ...

  6. 第03章—打造RESTful风格API

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  7. flask大全

    django:重武器,内部包含了非常多组件:ORM.Form.ModelForm.缓存.Session,中间件,信号等... flask:短小精悍.内部没有太多组件,第三方组件非常丰富 1.初识fla ...

  8. IIS设置文件 App_Offline.htm 网站维护

    在ASP.NET 2.0 站点根目录下,只要存在 App_Offline.htm 文件,那么所有对.aspx的请求都将转向App_Offline.htm .而且浏览器的地址栏显示的是所请求的.aspx ...

  9. 自己定义图片的progressbar

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/36183455 Android系统自带的Progre ...

  10. (转载)undo表空间

    对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...