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

简介:

 由于最新写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配置文件,改成如下:

 


  
  
  1. ### direct log messages to stdout ### 
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
  3. log4j.appender.stdout.Target=System.out 
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
  5. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
  6.  
  7. ### direct messages to file hibernate.log ### 
  8. #log4j.appender.file=org.apache.log4j.FileAppender 
  9. #log4j.appender.file.File=hibernate.log 
  10. #log4j.appender.file.layout=org.apache.log4j.PatternLayout 
  11. #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
  12.  
  13. ### set log levels - for more verbose logging change 'info' to 'debug' ### 
  14.  
  15. log4j.rootLogger=warn, stdout 
  16.  
  17. #log4j.logger.org.hibernate=info 
  18. #log4j.logger.org.hibernate=debug 
  19.  
  20. ### log HQL query parser activity 
  21. #log4j.logger.org.hibernate.hql.ast.AST=debug 
  22.  
  23. ### log just the SQL 
  24. #log4j.logger.org.hibernate.SQL=debug 
  25.  
  26. ### log JDBC bind parameters ### 
  27. #log4j.logger.org.hibernate.type=info 
  28. #log4j.logger.org.hibernate.type=debug 
  29.  
  30. ### log schema export/update ### 
  31. log4j.logger.org.hibernate.tool.hbm2ddl=debug 
  32.  
  33. ### log HQL parse trees 
  34. #log4j.logger.org.hibernate.hql=debug 
  35.  
  36. ### log cache activity ### 
  37. #log4j.logger.org.hibernate.cache=debug 
  38.  
  39. ### log transaction activity 
  40. #log4j.logger.org.hibernate.transaction=debug 
  41.  
  42. ### log JDBC resource acquisition 
  43. #log4j.logger.org.hibernate.jdbc=debug 
  44.  
  45. ### enable the following line if you want to track down connection ### 
  46. ### leakages when using DriverManagerConnectionProvider ### 
  47. #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace 
  48. 这里我们只留下,log4j.logger.org.hibernate.tool.hbm2ddl=debug  ,DDL的输出即可; 
  49.  
  50. OK,Himi再次运行项目打印如下: 
  51.  
  52. 00:58:31,450  INFO SchemaExport:226 - Running hbm2ddl schema export 
  53. 00:58:31,451 DEBUG SchemaExport:242 - import file not found: /import.sql 
  54. 00:58:31,452  INFO SchemaExport:251 - exporting generated schema to database 
  55. 00:58:31,452 DEBUG SchemaExport:377 - drop table if exists People 
  56. 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)) 
  57. 00:58:31,565  INFO SchemaExport:268 - schema export complete 
  58. 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,如下图:

 

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

 

 


  
  
  1. package com.himi; 
  2.  
  3. import org.hibernate.Session; 
  4. import org.hibernate.SessionFactory; 
  5. import org.hibernate.cfg.AnnotationConfiguration; 
  6. import org.junit.AfterClass; 
  7. import org.junit.BeforeClass; 
  8. import org.junit.Test; 
  9.  
  10. public class PeopleTest { 
  11.     public static SessionFactory sf =null
  12.  
  13.     //在类始化之前执行的方法 
  14.     @BeforeClass 
  15.     public static void beforeClass(){ 
  16.         sf=new AnnotationConfiguration().configure().buildSessionFactory(); 
  17.     } 
  18.  
  19.     @Test 
  20.     public void test() { 
  21.         People people = new People();// 新建我们需要存储的类对象,并且设置其对象的一些属性 
  22.         people.setId(1); 
  23.         people.setName("Himi"); 
  24.         people.setAge(23); 
  25.         people.setTitle("CTO"); 
  26.         people.setBirthday("1990-01-01"); 
  27.  
  28.         // 这里注意了,cfg.configure()读取配置文件的时候,如果你的hibernate的文件名不采用默认的“hibernate.cfg.xml”的话,那么这里传入你定义的配置文件路径 
  29.         // buildSessionFactory();得到一个创建Session的工场 
  30.         Session ss = sf.openSession();// 这里的Session导入import 
  31.                                         // org.hibernate.Session;不要使用class经典的,因为可能会过时 
  32.         ss.beginTransaction();// OK,将操作放入事务中 
  33.         ss.save(people);// 保存你的对象 
  34.         ss.getTransaction().commit();// 得到事务并提交 
  35.  
  36.         ss.close();// Session关闭 
  37.  
  38.     } 
  39.     //在类结束之后执行的方法 
  40.     @AfterClass 
  41.     public static void afterClass(){ 
  42.         sf.close();// 工厂关闭 
  43.     } 

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





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/969781,如需转载请自行联系原作者
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4116 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
6月前
|
机器学习/深度学习 存储 算法
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
本文系统研究了多智能体强化学习的算法性能与评估框架,选用井字棋和连珠四子作为基准环境,对比分析Q-learning、蒙特卡洛、Sarsa等表格方法在对抗场景中的表现。实验表明,表格方法在小规模状态空间(如井字棋)中可有效学习策略,但在大规模状态空间(如连珠四子)中因泛化能力不足而失效,揭示了向函数逼近技术演进的必要性。研究构建了标准化评估流程,明确了不同算法的适用边界,为理解强化学习的可扩展性问题提供了实证支持与理论参考。
350 0
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
|
8月前
|
监控 安全 测试技术
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
233 14
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
|
10月前
|
前端开发 JavaScript 程序员
鸿蒙开发:console日志输出
针对初学者而言,大家只需要掌握住日志打印即可,等到了鸿蒙应用开发的时候,还有一个鸿蒙原生的打印工具HiLog,到时,我们也会详细的去讲述,也会针对HiLog,封装一个通用的工具类。
374 11
鸿蒙开发:console日志输出
|
11月前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
756 11
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
11月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1599 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
494 5
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
414 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
监控 开发者
鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)
在HarmonyOS 5.0中,HiLog是系统提供的日志系统,支持DEBUG、INFO、WARN、ERROR、FATAL五种日志级别。本文介绍如何在ArkTS中使用HiLog打印日志,并提供示例代码。通过合理使用HiLog,开发者可以更好地调试和监控应用。
929 16
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
1114 4