首页 > 其他分享 >【Hibernate框架开发之三】搭建Hibernate日志(slf4j转log4j)环境并搭建Junit单元测试环境!

【Hibernate框架开发之三】搭建Hibernate日志(slf4j转log4j)环境并搭建Junit单元测试环境!

时间:2022-11-25 11:31:08浏览次数:59  
标签:Hibernate 单元测试 hibernate debug org logger log4j ### 搭建

本站文章均为​ 李华明Himi ​​原创,转载务必在明显处注明


由于最新写cocos2dx动作编辑器的解析和框架所以没更新,那么从今天开始继续来学习Hibernate,那么接着第二篇文章讲解,那么首先copy,第二篇的第一个Annotation的项目改个名字“LogForHibernate”;

          首先搭建log4j环境;

第一步我们之前设置过的User Libraries继续添加打印日志相关的配置,(ps.其实日志的控制台打印,对于我们Dev来说至关重要,一方面了解当前程序运行的情况即时找到BUG出处~,另外一方面log4j日志能为我们),添加如下jar包到Himi的MyHibernate(自定义的User Libraries):

首先Himi的MyHibernate删除slf4-nop-1.5.8.jar 包,然后换成log4j的实现如下第一个jar包:

第一个jar包         /apache-log4j-1.2.15/log4j-1.2.15.jar

继续添加第二个jar包         /slf4j-1.5.8/slf4j-1.5.8/slf4j-log4j12-1.5.8.jar

(这个slf4j-log4j12-1.5.8.jar,其实就是将slf4j 转换成log4j 日志的“适配器”;)

接下来我们需要配置一下log4j的配置文件,默认这个配置文件名,约定俗成:“log4j.properties”

不用手动创建,直接到如下路径索取:

/hibernate-distribution-3.3.2.GA/project/etc/log4j.properties

copy到项目中即可,与“hibernate.cfg.xml”放置同一级目录,OK,直接运行项目观察控制台,会发现很多debug信息,有些我们先用不到,OK,打开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​​


这里我们只留下,log4j.logger.org.hibernate.tool.hbm2ddl=debug  ,DDL的输出即可;

OK,Himi再次运行项目打印如下:

00:58:31,450  INFO SchemaExport:226 - Running hbm2ddl schema export​​       

​​00:58:31,451 DEBUG SchemaExport:242 - import file not found: /import.sql​​

​​00:58:31,452 INFO SchemaExport:251 - exporting generated schema to database​​

​​00:58:31,452 DEBUG SchemaExport:377 - drop table if exists People​​

​​00:58:31,462 DEBUG SchemaExport:377 - create table People (id integer not null, age integer not null, birthday varchar(255), name varchar(255), title varchar(255), primary key (id))​​

​​00:58:31,565 INFO SchemaExport:268 - schema export complete​​

​​Hibernate: insert into People (age, birthday, name, title, id) values (?, ?, ?, ?, ?)​


这次看起来就非常清晰了。

//————–Himi  分割线—————

    下面介绍  Junit的环境搭建;

copy 刚才的”LogForHibernate”项目,换名:“JunitForHibernate”;

OK,添加所需资源jar包,这里Himi添加到项目path中的为:junit-4.7.jar 包;

下一步,右键new->JUnit Test Case

​​

 

然后选择我们需要测试的方法:

package​​         ​​com.himi;​​       



​​import​​ ​​org.hibernate.Session;​​

​​import​​ ​​org.hibernate.SessionFactory;​​

​​import​​ ​​org.hibernate.cfg.AnnotationConfiguration;​​

​​import​​ ​​org.junit.AfterClass;​​

​​import​​ ​​org.junit.BeforeClass;​​

​​import​​ ​​org.junit.Test;​​



​​public​​ ​​class​​ ​​PeopleTest {​​

​​public​​ ​​static​​ ​​SessionFactory sf =​​ ​​null​​ ​​;​​



​​//在类始化之前执行的方法​​

​​@BeforeClass​​

​​public​​ ​​static​​ ​​void​​ ​​beforeClass(){​​

​​sf=​​ ​​new​​ ​​AnnotationConfiguration().configure().buildSessionFactory();​​

​​}​​



​​@Test​​

​​public​​ ​​void​​ ​​test() {​​

​​People people = ​​ ​​new​​ ​​People();​​ ​​// 新建我们需要存储的类对象,并且设置其对象的一些属性​​

​​people.setId(​​ ​​1​​ ​​);​​

​​people.setName(​​ ​​"Himi"​​ ​​);​​

​​people.setAge(​​ ​​23​​ ​​);​​

​​people.setTitle(​​ ​​"CTO"​​ ​​);​​

​​people.setBirthday(​​ ​​"1990-01-01"​​ ​​);​​



​​// 这里注意了,cfg.configure()读取配置文件的时候,如果你的hibernate的文件名不采用默认的“hibernate.cfg.xml”的话,那么这里传入你定义的配置文件路径​​

​​// buildSessionFactory();得到一个创建Session的工场​​

​​Session ss = sf.openSession();​​ ​​// 这里的Session导入import​​

​​// org.hibernate.Session;不要使用class经典的,因为可能会过时​​

​​ss.beginTransaction();​​ ​​// OK,将操作放入事务中​​

​​ss.save(people);​​ ​​// 保存你的对象​​

​​ss.getTransaction().commit();​​ ​​// 得到事务并提交​​



​​ss.close();​​ ​​// Session关闭​​



​​}​​

​​//在类结束之后执行的方法​​

​​@AfterClass​​

​​public​​ ​​static​​ ​​void​​ ​​afterClass(){​​

​​sf.close();​​ ​​// 工厂关闭​​

​​}​​

​​}​​

OK,就到这里,感冒了 早睡觉~晚安 各位;


标签:Hibernate,单元测试,hibernate,debug,org,logger,log4j,###,搭建
From: https://blog.51cto.com/xiaominghimi/5886082

相关文章

  • Go语言开发环境搭建
    1go下载安装地址:https://golang.google.cn/dl/安装路径自己选一个,比如D:/go,qita安装都选下一步即可安装完把D:/go/bin添加到系统环境变量,就可以了,在CMD中输入......
  • Samba服务搭建
    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协......
  • 在windows系统中搭建python编程环境
    Python环境可以安装在很多不同的系统中,我们python自学网主要考虑到绝大多数学员都是用的是Windows系统,所以就以Windows系统来给大家演示一下python安装的方法,后面也会更新......
  • Docker Java+Tomcat 环境搭建
    Docker更多资料请到​​https://dashboard.daocloud.io​​学习 软件环境:jdk、tomcat、docker、centos、虚拟机  首先,您要准备一个CentOS的操作系统,虚拟机也行。总之,......
  • 代理池搭建完成爬取新闻和视频
    代理池搭建完成爬取新闻和视频requests高级用法ssl认证#https和http有什么区别 -https=http+ssl/tsl证书#没有被认证过的机构,签发的证书,用的时候,浏览器......
  • 4.搭建项目app端服务网关
    搭建项目app端服务网关一、在heima-leadnews-gateway导入以下依赖<dependencies><dependency><groupId>org.springframework.cloud</groupId>......
  • Spring 5 中文解析之测试篇-Spring测试介绍和单元测试
    微信公众号:测试本章介绍了Spring对集成测试的支持以及单元测试的最佳实践。Spring团队提倡测试驱动开发(TDD)。Spring的团队发现,正确使用控制反转(IoC)的确是简化单元测试和......
  • Nginx初步-环境搭建
    Nginx的安装1、weget下载:http://nginx.org/download/nginx-1.6.2.tar.gz2、进行安装:tar-zxvfnginx-1.6.2.tar.gz3、下载所需要的依赖库文件  yuminstallpcre、yumin......
  • 基于docker搭建Jenkins+git+python+allure
    一、创建jenkins容器1、拉取jenkins镜像dockerpulljenkins/jenkins:latest    2、创建本地目录,后续挂载jenkins的工作目录mkdir/home/jenkins_home3、......
  • Hibernate学习总结
    Hibernate主要是在开发中对Dao(databaseaccessobject)层进行操作,因为他主要是操作数据库的,所以hibernate主要用于数据库的增删查改,下面就来一一介绍:1.配置hibernate,在src目......