zoukankan      html  css  js  c++  java
  • hibernate框架配置文件

    配置文件:和自己封装的工具类放在同一个包中

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     5 <!-- ■■■■■■■■文件的名字是:Customer.hbn.xml -->
     6 <hibernate-mapping>
     7     <!-- 配置类和表结构对的映射 -->
     8     <!-- 用 一个类,和另一个表关联,Hibernate框架的本意就是这样 -->
     9     <class name="com.itheima.domain.Customer" table="cst_customer">
    10         <!-- 配置id 见到name属性,JavaBean的属性 见到column属性,是表结构的字段 -->
    11         <id name="cust_id" column="cust_id">
    12             <!-- 主键的生成策略 -->
    13             <generator class="natine"></generator>
    14         </id>
    15         <!-- 配置其他属性 -->
    16         <property name="cust_name" column="cust_name"></property>
    17         <property name="cust_user_id" column="cust_user_id"></property>
    18         <property name="cust_create_id" column="cust_create_id"></property>
    19         <property name="cust_source" column="cust_source"></property>
    20         <property name="cust_industry" column="cust_industry"></property>
    21         <property name="cust_level" column="cust_level"></property>
    22         <property name="cust_linkman" column="cust_linkman"></property>
    23         <property name="cust_phone" column="cust_phone"></property>
    24         <property name="cust_mobile" column="cust_mobile"></property>
    25     </class>
    26 
    27 </hibernate-mapping>

    核心配置文件:和操作的Demo放在同一个包中

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-configuration PUBLIC
     3     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     4     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     5 <!-- ■■■■■■■■文件名字是:hibernate.cfg.xml -->
     6 <hibernate-configuration>
     7 <!-- 记住,先配置SessionFactory标签,一个数据库对应一个SessionFactory标签 -->
     8 <session-factory>
     9 <!-- 必须也要配置的参数有5个,4大参数,数据库的方言 -->
    10 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    11 <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
    12 <property name="hibernate.connection.username">root</property>
    13 <property name="hibernate.connection.password">123</property>
    14 <!-- 数据库的方言 -->
    15 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    16 
    17 <!-- 可选配置 -->
    18 
    19 <!-- 映射配置文件 -->
    20 <mapping resource="com/itheima/domain/Customer.hbn.xml"/>
    21 
    22 </session-factory>
    23 
    24 </hibernate-configuration>

     可选配置:

    1 <!-- 可选配置 -->
    2 <!-- 在控制台显示SQL语句 -->
    3 <property name="hibernate.show_sql">true</property>
    4 <!-- 格式化显示SQL语句 ,用来显示查看自己生成的代码错误在哪里 -->
    5 <property name="hibernate.format_sql">true</property>
    6 <!-- 生成数据库的表结构,自己测试用的,还有一种功能是先删除,在创建,创建之后再删除-->
    7 <property name="hibernate.hbm2ddl.auto">create</property>
    8 <!-- 生成表结构的数据,创建表结构,如果存在,不会创建,添加数据 -->
    9 <property name="hibernaye.hbm2ddl.auto">update</property>


    Configuration的对象和方法:
    如果想自动加载hibernate.cfg.xml配置文件的话,就需要加载配置文件,然后调用configure()方法,这个方法底层就是调用xml配置文件,具体如下:

    Configuration config = new Configuration();
    config.configure();

    如果自己配置的是属性文件的话,加载的话就如下代码:
    Configuration config = new Configuration();
    属性文件不能完成映射,不推荐使用。

    加载配置文件最简便的写法:
    Configuration config = new Configuration().configure();
    这种方法叫做方法链的编程,到后期会把这段代码加载成静态代码块


    技术分析SessionFactory接口和特点:
    SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
    他是重量级的,也就意味着不要轻易的创建或者去销毁他。

    SessionFactory是一分为二的,左边是内部结构,右边是外部结构,内部结构是不允许操作的,而内部结构自己会进行缓存,缓存一些基本的SQL语句和加载的配置信息的;外部结构被称为二级缓存,在这里就不讲解了。

    SQL语句都缓存在xml文件中的<session-factory>标签中


    11-技术分析之SessionFactory接口和特点_后面有个工具类,需要记住


    Session负责增删改查

    常用的方法:
    save 添加
    delete 删除
    get 查询---只能查一条记录
    saveOrUpdate 保存或者修改
    createQuery 查询时候的接口

  • 相关阅读:
    几种常用的曲线
    0188. Best Time to Buy and Sell Stock IV (H)
    0074. Search a 2D Matrix (M)
    0189. Rotate Array (E)
    0148. Sort List (M)
    0859. Buddy Strings (E)
    0316. Remove Duplicate Letters (M)
    0452. Minimum Number of Arrows to Burst Balloons (M)
    0449. Serialize and Deserialize BST (M)
    0704. Binary Search (E)
  • 原文地址:https://www.cnblogs.com/tidhy/p/6685041.html
Copyright © 2011-2022 走看看