作者:何征天

课程视频地址:https://ke.qq.com/course/273907

1.1.  Hibernate配置文件之核心配置文件

1. 核心配置文件的两种方式(了解)
    * 第一种方式是属性文件的形式,即properties的配置文件
  * hibernate.properties
  * hibernate.connection.driver_class=com.mysql.jdbc.Driver
  * 缺点
  * 不能加载映射的配置文件,需要手动编写代码去加载
        
  * 第二种方式是XML文件的形式,开发基本都会选择这种方式
  * hibernate.cfg.xml
    * <propertyname="hibernate.connection.driver_class" >com.mysql.jdbc.Driver</property>
   * 优点
  * 格式比较清晰
  * 编写有提示
  * 可以在该配置文件中加载映射的配置文件(最主要的)
    
     2. 关于hibernate.cfg.xml的配置文件方式
       * 必须有的配置
       * 数据库连接信息:
        hibernate.connection.driver_class        -- 连接数据库驱动程序
        hibernate.connection.url            
        hibernate.connection.url             -- 连接数据库URL
        hibernate.connection.username          --
        hibernate.connection.username          --数据库用户名
        hibernate.connection.password          --数据库密码
            
       * 方言:
        hibernate.dialect                -- 操作数据库方言
       * 可选的配置
             * hibernate.show_sql                --显示SQL
             * hibernate.format_sql               --格式化SQL
             * hibernate.hbm2ddl.auto             --通过映射转成DDL语句
              * create      --每次都会创建一个新的表.---测试的时候
              * create-drop   --每次都会创建一个新的表,当执行结束之后,将创建的这个表删除.---测试的时候
              * update     --如果有表,使用原来的表.没有表,创建一个新的表.同时更新表结构.
              * validate   --如果有表,使用原来的表.同时校验映射文件与表中字段是否一致如果不一致就会报错.
        
       * 加载映射
       * 如果XML方式:<mapping resource="cn/itcast/demo1/Customer.hbm.xml" />

1.2  控制台打印sql

建议在测试环境下,都将sql打开,便于调试。

<!-- 打印sql语句的配置 -->

<property name="hibernate.show_sql">true</property>

<property name="hibernate.format_sql">true</property>

1.3 Hibernate框架整合C3P0连接池

1. 先导入C3P0的jar包

* 先导入C3P0的jar包(3个jar包),在hibernate-release-5.0.7.Final\lib\optional目录下

2. 在hibernate.cfg.xml的配置文件中编写配置

<!-- C3P0的供应商 -->

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

<!-- 最小连接 -->

<property name="hibernate.c3p0.min_size">5</property>

<!-- 最大连接数 -->

<property name="hibernate.c3p0.max_size">10</property>

<!-- 每120秒检查空闲连接 -->

<property name="hibernate.c3p0.timeout">120</property>

1.4    自动建表

该配置是让hibernate是否自动建立相应的表。也就是说,你数据库可以没有表,hibernate可以自动给你建立一个。

create-drop:在程序运行时,(创建session工厂的时候)会自动建表,在程序停止时(关闭sessionFactory时),表删除

如何证明create-drop的功能?

直接使用debug的方式,断点查看

第一步,观察表是否创建成功(标志:原先的表被删除,数据丢失)

第二步,实现保存操作,观察表中是否有数据

第三步,程序运行结束,观察表是否被删除

create:在程序运行时,如果表不存在,自动建表,如果存在,则不进行任何操作(mysql会先删除再创建)

update:在程序运行时,如果表不存在,自动建表,如果表存在,则检查表和类的结构是否一致,如果不一致,则更新表结构.(推荐)

update:

在Customer类中加入如下代码:

//客户联系地址

private String cust_address;

public String getCust_address() {

returncust_address;

}

publicvoid setCust_address(String cust_address) {

this.cust_address = cust_address;

}

在Customer.hbm.xml中添加如下代码:

<property name="cust_address" column="cust_address"></property>

<property name="cust_address" column="cust_address"></property>

修改hibernate.cfg.xml中建表配置:

<property name="hibernate.hbm2ddl.auto">update</property>

测试

如果当表中的字段比配置文件多的时候,那么表中多的字段,hibernate将无法维护。(因为没有映射)

validate:在程序运行时,如果表结构和类不一致,则报错!(表中没有相应的字段,则报错,表中有冗余字段,不报错)

【自动建表小结】

【极客营】Hibernate常用的配置文件-核心配置文件相关推荐

  1. StarRocks极客营 | 90天,17名新晋贡献者,SQL Planner 实战回顾

    若能体验一个字符串的 SQL 怎么一步步在 StarRocks 被执行起来,对于 OLAP 开发者来说,能大大帮助理解整个框架和系统流程. 近日,由 StarRocks 社区举办的 SQL Plann ...

  2. “StarRocks 极客营” 重磅来袭,和技术大牛一起推开数据库梦想之门!

    操作系统.编译器.数据库是软件工程师的梦之所向,对于大多数人而言,却是近在眼前.远在天边: 你是否曾渴望加入 Linux 这样伟大的社区,然觉门槛太高无从下手? 你是否也曾想象参与开发 MySQL 这 ...

  3. All Eyes on Docs! 练就火眼金睛,就来StarRocks 极客营

    开放源代码运动的主要领导者--埃里克·雷蒙(Eric Steven Raymond)在他出版的<大教堂与集市>中描述了这样一个精彩的观点:只要有足够多的眼球关注,就可让所有软件缺陷浮现.他 ...

  4. 极客新闻——09、如何打造核心骨干团队

    本文笔记全部来自<极客新闻>--新鲜的技术资讯.权威的趋势剖析.别样的技术洞察 TGO鲲鹏会会员朱彬发表了主题为"如何打造核心骨干团队"的演讲.结合自身的实战经验,做了 ...

  5. 极客的Linux常用命令速查手册

    Linux常用命令速查手册 1.1 写在前面的话 1.2 Linux 常用命令速查手册 1.2.1 mkdir创建一个文件夹 1.2.2 cd进入一个文件夹 1.2.3 rmdir删除一个文件夹 1. ...

  6. Springboot-读取核心配置文件及自定义配置文件

    读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心 ...

  7. 【观察】保险极客:技术创新与平台“进化”,应对企业团险的千变万化

    申耀的科技观察 读懂科技,赢取未来! 企业面临最大的威胁不是对手,而是趋势.今天,数字化转型已成为颠覆性力量,很多行业被裹挟其中,或主动或被动,都在惴惴不安地等待一个叫"奇点"的到 ...

  8. mybatis使用map插入数据和Mybatis的核心配置文件LOG4J

    mybatis使用map插入数据 UserMapper.java包中写入 int addUser2(Map<Object,String> map); Usermapper.xml < ...

  9. hibernate教程--常用配置和核心API详解

    一.Hibernate的常用的配置及核心API. 1.1 Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置:  1)属性文件的配置: * hibernate.prop ...

  10. hibernate教程--常用配置和核心API

    一.Hibernate的常用的配置及核心API. 1.1Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置: 1)属性文件的配置: * hibernate.proper ...

最新文章

  1. android之Fragment(官网资料翻译)二
  2. IOS 中runtime 不可变数组__NSArray0 和__NSArrayI
  3. 上财的计算机专业408,【2020考研】上财408分经验分享
  4. lgg8配置_LGG8XThinQ参数配置-LG G8X ThinQ详细性能评测
  5. 飞鸽传书该如何去优化?
  6. JDK1.8 中 ConcurrentHashMap源码分析(二)元素添加是线程安全的
  7. science量子计算机,第一快讯|《Science》量子计算机被证明超越了经典计算机
  8. PHP 点击局部刷新
  9. MATLAB五子棋游戏(双人对战,可悔棋)
  10. 判断浏览器版本加载对应的样式表(文件)
  11. 如何开通微信小程序在线客服系统?
  12. 操作系统原理实验(3):操作系统的基石中断与异常
  13. s60 微信 服务器繁忙,微信Mars — 移动互联网下的高质量网络连接探索
  14. html:(9):blockquote引用和br换行
  15. 少儿编程航天主题,scratch与航天航空主题:八大行星排排序
  16. 苏州大学应用技术学院计算机二级,苏州大学应用技术学院怎么样_苏州大学一本与二本有什么差别...
  17. 深度学习之3D卷积神经网络
  18. GithubPages上搭建个人主页
  19. day1 request的使用
  20. Java选择题(二十一)

热门文章

  1. 安卓notification通知的详解
  2. 2010-11-17
  3. 批量归一化:减少特征的方差,减小梯度爆炸——对神经网络中间层的输出进行标准化的方法,帮助解决模型的快速收敛、加速训练、防止过拟合等问题
  4. 《攻防世界》新手区Web(一)
  5. Navicat远程连接Docker容器中的mysql:报异常,1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘
  6. 【Unity3D】如何快速做出点击按钮切换场景
  7. 连接MySql数据库JDBC
  8. 【经验分享】C51单片机中如何实现printf输出log?
  9. 华为手机升微信7.0.0后集体Bug 官方称正联合腾讯修复
  10. java圆和椭圆的关系_实现椭圆结构元素