JavaWeb_(Hibernate框架)Hibernate配置文件hibernate.cfg.xml

时间:2021-07-22 05:15:58

hibernate.cfg.xml配置文件——链接数据库

  hibernate.cfg.xml一定要配置在/src文件目录下

  JavaWeb_(Hibernate框架)Hibernate配置文件hibernate.cfg.xml

    --数据库驱动,url,用户名,密码

    --方言org.hibernate.dialect.MySQL5InnoDBDialect

    --显示并格式化sql语句

    --配置自动生成表

    --orm文件位置

<hibernate-configuration>
<!-- 负责初始化 -->
<session-factory> <!-- 连接数据库驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库地址 -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernatest</property>
<!-- 数据库用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库密码 -->
<property name="hibernate.connection.password">123456</property>
<!-- 配置数据库的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <mapping resource= "com/Gary/domain/User.hbm.xml"/> </session-factory> </hibernate-configuration>
<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库地址 -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernatest</property>
<!-- 数据库用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库密码 -->
<property name="hibernate.connection.password">123456</property> <!-- 配置数据库的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <mapping resource= "com/Gary/domain/User.hbm.xml"/> </session-factory> </hibernate-configuration>

hibernate.cfg.xml

  显示sql语句

        <!-- 将hibernate生成的SQL语句打印到控制台上 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化hibernate生成的sql语句 -->
<property name="hibernate.format_sql">true</property>

JavaWeb_(Hibernate框架)Hibernate配置文件hibernate.cfg.xml

  自动生成表

        <!-- hibernate自动创建表
create: 自动创建表,每次框架运行都会创建一张新的表,原来的数据将丢失(开发)
create-drop: 自动建表.每次框架运行结束都会将所有表删除.(开发环境中测试使用)
update(推荐): 自动生成表,如果表已经存在,则更新数据,如果表不存在,就会创建一张新的表
validate: 加载hibernate时,验证创建数据库表结构 -->
<property name="hibernate.hbm2ddl.auto">create</property>

 create:
  每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。

 create-drop :
  每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

 update:
  最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。

 validate :
  每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

  orm文件实体User.java和User.hbm.xml两个都放置在domain实体层下

  数据库user表,表中的属性都是string类型,id为主键

JavaWeb_(Hibernate框架)Hibernate配置文件hibernate.cfg.xml

  

  User,java

    private String id;
private String username;
private String password;
private String name;
private String email;
private String telephone;

  User.hbm.xml

<hibernate-mapping>

   <class name="com.Gary.domain.User" table="user">
<!-- id元素
name:实体中的属性
colum(可选):数据库的列名
type(可选): 填写列(属性)的类型.hibernate会自动检测实体的属性类型.
每个类型有三种填法: java类型|hibernate类型|数据库类型
length(可选):配置数据库中列的长度.
默认值:使用数据库类型的最大长度
-->
<id name="id" column="id">
<!-- 主键生成策略(手动生成) (最后讲) 5种
identity:主键自增
sequence:oracle中主键生成的策略
native:identity+sequence (hibernate会根据连接的数据库自动选择(identity,sequence))
uuid:产生随机字符串作为主键,主键必须为String assigned:我们要手动去指定
-->
<generator class="assigned"></generator>
</id> <!--
property:除了id之外的普通属性
name:实体中的属性
colum(可选):数据库的列名
type(可选): 填写列(属性)的类型.hibernate会自动检测实体的属性类型.
每个类型有三种填法: java类型|hibernate类型|数据库类型
length(可选):配置数据库中列的长度.
默认值:使用数据库类型的最大长度
not-null(可选):配置该属性(列)是否不能为空. 默认值:false
--> <property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="name" column="name"></property>
<property name="email" column="email"></property>
<property name="telephone" column="telephone"></property>
</class> </hibernate-mapping>
package com.Gary.domain;

public class User {

    private String id;
private String username;
private String password;
private String name;
private String email;
private String telephone; public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
} }

User.java

<?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"> <hibernate-mapping> <class name="com.Gary.domain.User" table="user">
<!-- id元素
name:实体中的属性
colum(可选):数据库的列名
type(可选): 填写列(属性)的类型.hibernate会自动检测实体的属性类型.
每个类型有三种填法: java类型|hibernate类型|数据库类型
length(可选):配置数据库中列的长度.
默认值:使用数据库类型的最大长度
-->
<id name="id" column="id">
<!-- 主键生成策略(手动生成) (最后讲) 5种
identity:主键自增
sequence:oracle中主键生成的策略
native:identity+sequence (hibernate会根据连接的数据库自动选择(identity,sequence))
uuid:产生随机字符串作为主键,主键必须为String assigned:我们要手动去指定
-->
<generator class="assigned"></generator>
</id> <!--
property:除了id之外的普通属性
name:实体中的属性
colum(可选):数据库的列名
type(可选): 填写列(属性)的类型.hibernate会自动检测实体的属性类型.
每个类型有三种填法: java类型|hibernate类型|数据库类型
length(可选):配置数据库中列的长度.
默认值:使用数据库类型的最大长度
not-null(可选):配置该属性(列)是否不能为空. 默认值:false
--> <property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="name" column="name"></property>
<property name="email" column="email"></property>
<property name="telephone" column="telephone"></property>
</class> </hibernate-mapping>

User.hbm.xml

  uuid: 通用唯一识别码(Universally Unique Identifier)的缩写,让每个人都可以创建不与其它人冲突的UUID,在这样的情况下,就不需考虑数据库创建时的名称重复问题。

JavaWeb_(Hibernate框架)Hibernate配置文件hibernate.cfg.xml的更多相关文章

  1. Hibernate框架 主配置文件 Hibernate&period;cfg&period;xml 映射配置 说明

    1 主配置文件 Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final ...

  2. JavaWeb&lowbar;&lpar;Spring框架&rpar;Spring整合Hibernate

    Dao层类要继承HibernateDaoSupport.java父类 原先使用Hibernate框架hibernate.cfg.xml配置数据库 <hibernate-configuration ...

  3. JavaWeb&lowbar;&lpar;Mybatis框架&rpar;主配置文件介绍&lowbar;四

    系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...

  4. Hibernate框架 主配置文件(Hibernate&period;cfg&period;xml) 映射配置 说明

    Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project ...

  5. Hibernate的主配置文件hibernate&period;cfg&period;xml

    1:Hibernate的主配置文件的名字必须是hibernate.cfg.xml(主要配置文件中主要配置:数据库连接信息,其他参数,映射信息):常用配置查看源码:Hibernate\hibernate ...

  6. 2&period;Hibernate的主配置文件hibernate&period;cfg&period;xml

    1.配置 Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表.Hibernate 也需要一套相关数据库和其它相关参数的配置设置.所有这些信息通常是作 ...

  7. JavaWeb&lowbar;&lpar;Spring框架&rpar;在Struts&plus;Hibernate框架中引入Spring框架

    spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...

  8. 引入Activiti配置文件activiti&period;cfg&period;xml

    前面我们用代码实现了生成25张activiti表,今天我们用Activiti提供的activiti.cfg.xml配置文件来简化实现前面的功能: 官方文档参考地址:http://activiti.or ...

  9. activiti7配置文件activiti&period;cfg&period;xml&comma;日志文件log4j&period;properties及pom文件

    activiti.cfg.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns=&qu ...

  10. Hibernate框架 主配置文件(Hibernate&period;cfg&period;xml)基本

    数据库连接参数配置: <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type ...

随机推荐

  1. tornado&lowbar;mongodb 连接和使用

    tornado,mongodb 连接和使用,开始使用tornado3.2,mongodb2.6,pymongo-3.03遇到不少的麻烦.因为新版tornado与老版本的代码有很多变化,mongodb根 ...

  2. apache如何设置http自动跳转到https

    如何设置http自动跳转到https?apache环境下,配置好https后,需要设置url重定向规则,使网站页面的http访问都自动转到https访问. 1.先打开url重定向支持1)打开Apach ...

  3. 图解Storm

    问题导读:1.你认为什么图形可以显示hadoop与storm的区别?(电梯)2.本文是如何形象讲解hadoop与storm的?(离线批量处理.实时流式处理)3.hadoop map/reduce对应s ...

  4. wp8 json2csharp

    string jsonData = "{\"result\":\"600\",\"data\":{\"items\&qu ...

  5. 深入理解Java内存模型(六)——final

    与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象 ...

  6. ios 沙盒 NSCoding(相当于JAVA对象序列化) 归档 数据存储

    通过NSCoding能实现像JAVA一样能够实现对象的序列化,可以保存对象到文件里. NSCoding 跟其他存储方式略有不同,他可以存储对象 对象存储的条件是: 对象需要遵守 NSCoding 协议 ...

  7. leetcode&commat; &lbrack;134&rsqb; Gas station &lpar;Dynamic Programming&rpar;

    https://leetcode.com/problems/gas-station/ 题目: There are N gas stations along a circular route, wher ...

  8. MySQLSource-Flume

    1. 自定义Source说明 实时监控MySQL,从MySQL中获取数据传输到HDFS或者其他存储框架,所以此时需要我们自己实现MySQLSource. 2. 自定义MySQLSource步骤 根据官 ...

  9. vue-router使用 看着篇就够了

    官网地址:https://router.vuejs.org/zh/ 先来个自我介绍吧,我就是你们口中的路由,我的作用就是告诉你们怎么到达某地,比如你想去一个地方(前提是这个地方是已经存在的)我会查询我 ...

  10. python初识模块

    sys import sys   print(sys.argv)     #输出 $ python test.py helo world ['test.py', 'helo', 'world']  # ...