hibernate(四)
目录:
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、二级缓存
---