hibernate(四)

CXC0 2020-06-14

目录:

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、二级缓存

---

相关推荐

LetonLIU / 0评论 2020-05-29
东方咖啡屋 / 0评论 2020-01-06