当前位置: 首页 > news >正文

(二)hibernate配置管理

Hibernate从其配置文件中读取和数据库连接有关的信息。Hibernate配置文件有两种形式,XML格式或者java属性文件(properties)格式。

(一)java属性文件的格式创建hibernate的配置文件,默认文件名为hibernate.properties,为键值对的形式,放在src目录下:例如

   (一)java属性文件的格式创建hibernate的配置文件,默认文件名为hibernate.properties,为键值对的形式,放在src目录下:例如

                hibernate.dialect=org.hibernate.dialect.MySQLDialect
                hibernate.connection.driver_class=com.mysql.jdbc.Driver
                hibernate.connection.url=jdbv:mysql://localhost:3306/hibernate
                hibernate.connection.username=root
                hibernate.connection.password=123456
                hibernate.show_sql=true


                hibernate.dialect:指定数据库使用的sql方言。可以根据数据库的不同生成不同的方言,底层是通过调用一个一个类实现的。
                hibernate.connection.driver_class:指定数据库的驱动程序
                hibernate.connection.url:指定连接数据库的url
                hibernate.connection.username:指定连接数据库的用户名
                hibernate.connection.password:指定连接数据库的密码
                hibernate.show_sql:如果为true,可以在控制台打印sql语句 

                hbm2ddl.auto:生成表结构的策略配置,配置这个可以通过映射文件和实体类自动生成表结构
                有四个值:
                    update(最常用的取值):如果当前数据库不存在对应的数据表,那么自动创建数据表
                    如果存在对应的数据表,并且表结构和实体类属性一致,那么不做任何修改
                    如果存在对应的数据表,但是表结构和实体类属性不一致,那么会新创建与实体类属性对应的列,其他列不变 

                    create(很少使用):无论是否存在对应的数据表,每次启动Hibernate都会重新创建对应的数据表,以前的数据会丢失

                    create-drop(极少使用):无论是否存在对应的数据表,每次启动Hibernate都会重新创建对应的数据表,每次运行结束删除数据表

                    validate(很少使用):只校验表结构是否和我们的实体类属性相同,不同就抛异常 

  (二)使用xml格式的配置文件,默认文件名为hibernate.cfg.xml

                <?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.username">root</property>
                        <property name="hibernate.connection.password">123456</property>
                        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>

                        <property name="show_sql">true</property>
                        <property name="format_sql">true</property>
                        <property name="hbm2ddl.auto">update</property>
                        <property name="hibernate.connection.autocommit">true</property> 

                        //引入映射文件
                        <mapping resource="com/cad/domain/User.hbm.xml"/>

                    </session-factory>
                </hibernate-configuration>

两种方式的区别

            如果Hibernate的配置文件为java属性文件,那么必须通过代码来声明需要加载的映射文件
            通过Configuration的addClass(实体类名.class)来加载。

            配置文件为xml文件时,可以通过<mapping>元素来指定需要加载的映射文件。

            当通过Configuration的默认构造方法创建实例时,会默认查找hibernate.properties文件,如果找到就将配置信息加载到内存中。
            默认情况下,hibernate不会加载hibernate.cfg.xml文件,必须通过Configuration的configure()方法来显式加载hibernate.cfg.xml文件

  

  

转载于:https://www.cnblogs.com/yuexiaoyun/p/9451865.html

相关文章:

  • PHP观察者模式的简单实现
  • (七)Java对象在Hibernate持久化层的状态
  • Ext JS添加子组件的误区
  • vue 个人积累(使用工具,组件)
  • linux_shell_5_shell特性_正则_1
  • 【Python模块】Python UUID模块
  • 以太坊客户端Geth命令参数详解
  • 寒门难再出贵子(4),一篇值得思考的文章
  • Centos7下自建yum源并同步阿里云镜像的rpm包
  • CentOS 网络设置
  • java集合之linkedList链表基础
  • ReSharper7.1.25.234 注册机
  • Java之word导出下载
  • bootstrap完美实现5列布局
  • 第二章 JAVA语言基本语法————数据类型之间的转换
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 2017届校招提前批面试回顾
  • avalon2.2的VM生成过程
  • JavaScript设计模式之工厂模式
  • java中的hashCode
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • php的插入排序,通过双层for循环
  • springMvc学习笔记(2)
  • Tornado学习笔记(1)
  • 构建工具 - 收藏集 - 掘金
  • 诡异!React stopPropagation失灵
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 使用agvtool更改app version/build
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • #{}和${}的区别是什么 -- java面试
  • (1)bark-ml
  • (MATLAB)第五章-矩阵运算
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (正则)提取页面里的img标签
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • **CI中自动类加载的用法总结
  • *1 计算机基础和操作系统基础及几大协议
  • ./configure,make,make install的作用(转)
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET CORE Aws S3 使用
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET MVC第三章、三种传值方式
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net 简单实现MD5
  • .NET构架之我见
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝