zoukankan      html  css  js  c++  java
  • hibernate(四)整合log4j、一对一、二级缓存

    目录:

    1、Hibernate 整合 log4j

      hibernate使用了 slf4j,现在我们想使用 log4j,需要中间 jar 包 slf4j-log4j12-1.7.2.jar
      导入 jar 包:slf4j-log4j12-1.7.2.jar 和 log4j-1.2.16.jar
      在 src 下面配置 log4j.properties(从hibernate 下载包 /project/etc 下面复制)

    ### direct log messages to stdout ###
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### direct messages to file hibernate.log ###
    log4j.appender.file=org.apache.log4j.FileAppender
    log4j.appender.file.File=d:/hibernate.log
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    log4j.rootLogger=DEBUG, stdout, file
    
    #log4j.rootLogger=DEBUG, Console  
    #  
    ##Console  
    #log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    #log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
    #log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  
    #  
    #log4j.logger.java.sql.ResultSet=INFO  
    #log4j.logger.org.apache=INFO  
    #log4j.logger.java.sql.Connection=DEBUG  
    #log4j.logger.java.sql.Statement=DEBUG  
    #log4j.logger.java.sql.PreparedStatement=DEBUG

      配置文件详解:
            - 在控制台打印
                log4j.appender.stdout=org.apache.log4j.ConsoleAppender
                log4j.appender.stdout.Target=System.out(使用System.err控制台输出红色字体内容)
            - 输出文件d:hibernate.log
                log4j.appender.file=org.apache.log4j.FileAppender
                log4j.appender.file.File=d:hibernate.log
            - log4j.rootLogger=error, stdout, file:表示输入项目中所有error,向控制台和文件总输出
                ** log4j.rootLogger=error, stdout:表示只向控制台输出
                ** log4j.rootLogger=info, stdout:表示向控制台输出info
                ** 日志级别 : fatal 致命错误 error 错误 warn 警告 info 信息 debug 调试信息 trace 堆栈信息 (由高到底顺序)

    2、在hibernate中如何表达一对一关系

      一对一关系不多见,一般可以合成一张表

    2.1、第一种表达方法:使用外键

      在两表任选一表 t_address,添加外键引用,在配置外键时

    <many-to-one name="company" class="Company" column="cid" unique="true"/>

      unique="true" 规定,外键唯一,使得"多对一"关系变成"一对一"关系


      另外一张表 t_company,配置

    <one-to-one name="address" class="Address" property-ref="company"/>

      property-ref="" 指定 company 在一对一关联时,指向那个属性

    2.2、主键同步

      表 t_address 的 id 既做主键,又做外键

    <id name="id" column="id">
        <generator class="foreign">
            <param name="property">company</param>  作为外键时,引用哪个属性
        </generator>
    </id>
    
    <one-to-one name="company" class="Company" constrained="true"/>

      表t_company

    <one-to-one name="address" class="Address"/>

    3、二级缓存

    ---

  • 相关阅读:
    Mysql: 一个死锁场景的解决
    Mysql: 创建新的账号
    安全评测:BashDoor
    BeanFactory和FactoryBean的区别:
    linux 下将war解压到当前目录
    学习BoolanC++笔记_01(C++面向对象高级编程(上)第一周)
    学习BoolanC++笔记_00(预备)
    Linux (Centos) 上安装Nexus OSS 3 并搭建docker私有仓库
    linux(Centos7)搭建rpm仓库
    树莓派4b安装 manjaro linux
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/13124240.html
Copyright © 2011-2022 走看看