SS3.3_Hibernate_Log4j&JUnit 日志处理框架和单元测试

来源:互联网 发布:厦门网络优化 编辑:程序博客网 时间:2024/05/21 03:19

SS3.3_Hibernate_Log4j&JUnit项目由项目SS3.2_Hibernate_Annotation拷贝而来,项目结构截图如下:



创建log4j.properties日志配置文件:

### 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=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n


### set log levels - for more verbose logging change 'info' to 'debug' ###


log4j.rootLogger=warn, stdout



#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug


### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug


### log just the SQL
log4j.logger.org.hibernate.SQL=debug


### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug


### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug


### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug


### log cache activity ###
#log4j.logger.org.hibernate.cache=debug


### log transaction activity
log4j.logger.org.hibernate.transaction=debug


### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug


### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace


运行项目控制台输出如下信息:

18:08:25,162  INFO TransactionFactoryFactory:59 - Using default transaction strategy (direct JDBC transactions)
18:08:25,166  INFO TransactionManagerLookupFactory:80 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
18:08:25,326  INFO SchemaExport:226 - Running hbm2ddl schema export
18:08:25,326 DEBUG SchemaExport:242 - import file not found: /import.sql
18:08:25,326  INFO SchemaExport:251 - exporting generated schema to database
18:08:25,327 DEBUG SchemaExport:377 - drop table if exists Student
18:08:25,339 DEBUG SchemaExport:377 - create table Student (sid integer not null auto_increment, sname varchar(255), primary key (sid))
18:08:25,343  INFO SchemaExport:268 - schema export complete
18:08:25,413 DEBUG JDBCTransaction:82 - begin
18:08:25,413 DEBUG JDBCTransaction:87 - current autocommit status: false
18:08:25,422 DEBUG SQL:111 - insert into Student (sname) values (?)
Hibernate: insert into Student (sname) values (?)
18:08:25,434 DEBUG JDBCTransaction:134 - commit
18:08:25,437 DEBUG JDBCTransaction:147 - committed JDBC Connection








新建单元测试类,继承TestCase,根据移动鼠标到TestCase上提示的信息,点击Add Unit 3导入开发工具集成的单元测试软件包:

package net.nw.vo;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import junit.framework.TestCase;
public class TestStudent extends TestCase {
private static SessionFactory sessionFactory ;

@Override
protected void setUp() throws Exception {
System.out.println("setUp()...");
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}

@Override
protected void tearDown() throws Exception {
System.out.println("tearDown()...");
sessionFactory.close();
}

public  void testSave(){
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
try{
Student s = new Student();
s.setSname("wangwu");
session.save(s);
tx.commit();
}catch(Exception ex){
tx.rollback();
ex.printStackTrace();
}finally{
if(session !=null){
session.close();
}
}
}

}

执行单元测试,效果截图如下:


0 0
原创粉丝点击