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源码学习——Connection Manager
    MySQL源码学习——MDL字典锁
    Mysql源码学习——用户认证原理与实现
    Mysql源码学习——Thread Manager
    你真的了解如何登录MySQL么?
    CSDN密码库窥视各大数据库性能
    Mysql源码学习——没那么简单的Hash
    How to use NoSQL in MySQL
    Oracle的聚簇也Hold不住了
    Python 错误解决方法
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/13124240.html
Copyright © 2011-2022 走看看