hibernate配置文件的详解
<?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配置文件的详解的更多相关文章
- ssh2的application.xml配置文件配置详解
ssh2的application.xml配置文件配置详解 1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="clas ...
- (转)Hibernate的配置详解
http://blog.csdn.net/yerenyuan_pku/article/details/65041077 在<Hibernate快速入门>一文中,我有讲到Hibernate的 ...
- Nginx 主配置文件参数详解
Nginx 主配置文件参数详解 Nginx 安装完毕后,会有响应的安装目录,安装目录里 nginx.conf 为 nginx 的主配置文件, ginx 主配置文件分为 4 部分,main(全局配置). ...
- CentOS网络接口配置文件ifcfg-eth详解
======CentOS网络接口配置文件ifcfg-eth详解====== 文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/ne ...
- Hibernate Session & Transaction详解
Hibernate Session & Transaction详解 HIbernate中的Session Session是JAVA应用程序和Hibernate进行交互时使用的主要接口,它也是持 ...
- Apache2 httpd.conf配置文件中文版详解
Apache2 httpd.conf配置文件中文版详解## 基于 NCSA 服务的配置文件.##这是Apache服务器主要配置文件.#它包含服务器的影响服务器运行的配置指令.#参见以取得关于这些指令的 ...
- hibernate enum映射详解
hibernate enum映射详解 在这里介绍注解的形式,如果想要了解XML配置的方式,可以自行查找相关资料. 例如以下Entity @Entity @Table(name = "t_us ...
- 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. ...
- hibernate缓存机制详解
hiberante面试题—hibernate缓存机制详解 这是面试中经常问到的一个问题,可以按照我的思路回答,准你回答得很完美.首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再 ...
随机推荐
- JZOJ.5230【NOIP2017模拟8.5】队伍统计
Description 现在有n个人要排成一列,编号为1->n .但由于一些不明原因的关系,人与人之间可能存在一些矛盾关系,具体有m条矛盾关系(u,v),表示编号为u的人想要排在编号为v的人前面 ...
- 【BZOJ4712】洪水 树链剖分优化DP+线段树
[BZOJ4712]洪水 Description 小A走到一个山脚下,准备给自己造一个小屋.这时候,小A的朋友(op,又叫管理员)打开了创造模式,然后飞到山顶放了格水.于是小A面前出现了一个瀑布.作为 ...
- 【BZOJ4260】Codechef REBXOR Trie树+贪心
[BZOJ4260]Codechef REBXOR Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output ...
- 【CSS选择器】理解汇总和记录
1.选择器中符号含义汇总(这部分包含了对选择器的通用理解): 1.1.多元素组合符号:(共6个,一个是CSS3的)(适用所有元素:ID组合,类组合,属性组合,标签组合,伪类组合,以及以上所有混合组合) ...
- 【文章阅读】详解MySQL数据类型
详解MySQL数据类型 - 五月的仓颉 - 博客园 http://www.cnblogs.com/xrq730/p/8446246.html 注:对于MySQL的数据类型做了详细的讲解,这是我看过的最 ...
- SpringBoot专题2----springboot与schedule的激情相拥
Schedule:计划,任务.就是我们常说的定时任务.这在我们做一些系统的时候,是经常需要用到的.比如:定时更新一些数据,定时更新索引,都需要这样的一个功能. 第一:创建一个名为springboot- ...
- php 使用imagettftext()函数出问题的原因
<?php header('Content-type: image/png'); $im = imagecreatetruecolor(400, 300); //创建画布 $white = im ...
- Taylor's theorem
w https://en.wikipedia.org/wiki/Taylor_series
- Java 面向对象之构造函数和 this 关键字
构造函数 this 关键字 1. 构造函数 class Person { private String name; private int age; // 定义一个 Person 类的构造函数 Per ...
- Pycharm如何修改背景图(BackgroundColor)
Outline 之前见到别人Eclipse自定义设置了背景图,在想 Pycharm是不是也可以设置?都是IDE嘛~ 没事捣鼓 Pycharm Settings 时,看到“Background Imag ...