Mybatis——日志

05 解决属性名和字段名不一致的问题

5.1 问题

数据中的字段

新建一个项目,拷贝之前的,测试实体类字段不一致的情况

public class User {
    private int id;
    private String name;
    private String password;
}

测试的问题

//select * from mybatis.user where id = #{id};

//类型处理器
//select id,name,pwd as password from mybatis.user where id = #{id};

5.2 解决方法:

第一种:起别名

<select id="getUserById" parameterType="int" resultType="user" >
   select id,name,pwd as password from mybatis.user where id = #{id};
</select>

第二种:resultMap 结果集映射

5.3 resultMap 结果集映射

id    name    pwd
id    name    password
<!--结果集映射-->
<resultMap id="UserMap" type="user">
    <!--column数据库的字段,property实体类的属性-->
    <result column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="pwd" property="password"/>
</resultMap>

<select id="getUserById" parameterType="int" resultMap="UserMap" >
   select * from mybatis.user where id = #{id};
</select>
  • resultMap元素是MyBatis中最重要最强大的元素
  • ResultMap的设计思想是,对于简单的语句根本不需要配置显示的结果映射,而对于复杂一点的语句只需要描述他们的关系就行了
  • ResultMap 最优秀的地方在于,虽然你已经对他相当了解了,但你根本就不需要显示的用到他们
  • 如果世界总是这么简单就好了

06 日志

6.1 日志工厂

曾经:sout debug

现在:日志工厂

  • SLEF4
  • LOG4J 【掌握】
  • LOG4J2
  • JDK_LOGGING
  • COMMONS_LOGGING
  • STDOUT_LOGGING【掌握】
  • NO_LOGGING

在Mybatis中具体使用那个—日志实现,在设置中设定!

STDOUT_LOGGING标准日志输出

在mybatis核心配置文件中,配置我们的日志!

<!--日志文件-->
<settings>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

6.2 LOG4J

6.2.1 什么是Log4J?

  • Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件;
  • 我们也可以控制每一条日志的输出格式
  • 通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程
  • 最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

6.2.2 如何使用Log4J

1、先在pom.xml文件中导入log4j的依赖包

<dependency>
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

2、在resources文件夹下建立log4j.properties文件进行配置

#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger = DEBUG,console ,file

#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold = DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  [%c]-%m%n

#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File = ./log/kun.log
log4j.appender.file.MaxFileSize = 10mb
log4j.appender.file.Threshold = DEBUG
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = [%p][%d{yy-MM-dd}][%c]%m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

3、配置log4j为日志实现

<!--日志文件-->
<settings>
    <setting name="logImpl" value="LOG4J"/>
</settings>

4、Log4j使用!直接运行刚才的查询

6.2.3 简单使用

1.在要使用Log4j的类中,导入包import org.apache.log4j.Logger;

2.日志对象,参数为当前类的class

static Logger logger = Logger.getLogger(UserMapper.class);

3.日志级别

logger.info("info:进入了testLog4j");
logger.debug("debug:进入了testLog4j");
logger.error("error:进入了testLog4j");

4.之后可在log文件夹中查看日志文件信息

全部评论
感谢楼主分享,这个很有用啊
点赞 回复 分享
发布于 2022-08-25 20:33 陕西

相关推荐

09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
永泽one:好厉害,acm➕开源,感觉找个大厂实习背书就好了,能教教开源的一些方法嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务