美文网首页
10|第十课:MyBatis整合Log4j以及延迟加载

10|第十课:MyBatis整合Log4j以及延迟加载

作者: 木头amo | 来源:发表于2019-02-28 09:51 被阅读1次

    一、历史回顾

    (一)、日志

    SLF4J ---> Apache Commons Loggin ---> Log4j 2 ---> Log4j ---> JDK logging

    二、Log4j以及延迟加载

    (一)、Log4j

    1、jar包:从下载MyBatis软件包里就有(在mybatis-3.5.0的lib目录)。

    2、开启日志:在conf.xml文件中

    日志开启

    如果这里的value不指定,默认按照以下顺序寻找日志:SLF4J ---> Apache Commons Loggin ---> Log4j 2 ---> Log4j ---> JDK logging

    3、编写配置日志输出文件(log4j.properties)

    ##日志级别,输出地方

    log4j.rootLogger=DEBUG, stdout

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

    注:日志级别---DEBUG<INFO<WARN<ERROR。设置成DEBUG,4个都有。如果设置成INFO,则只有DEBUG不显示,其余都显示。也就是说只显示指定级别及以上的

    建议:在开发时,设置成DEBUG,在运行时,设置成INFO 

    (二)、延迟加载

    1、介绍:

    查询关联:一对一、一对多、多对一、多对多

    2、一对一

    例:

    一对多:城市 --- 人

    如果不采取延迟加载(立即加载),查询时会将一和多都查询,城市、人表中的所有人都会查询出来。但是有的时候,我们只想查询一,不想查询多。这里却全都查询出来了。这样的只查询一,不查询多的操作叫延迟加载。

    具体操作:

    (1)、延迟加载:需要配置conf.xml

    配置信息

    例:

    conf.xml配置:

    conf.xml配置

    personMapper.xml配置:

    personMapper.xml配置

    新建并cardMapper.xml配置:

    cardMapper.xml配置

    personMapper接口:

    personMapper接口

    测试类:

    测试类

    通过例子debug发现,如果程序只需要person,则只向数据库发送了查询person的SQL;当我们后续需要用到card信息的时候,再第二次发送查询学生证SQL。

    如果增加了mapper.xml,要修改conf.xml配置文件(将新增的mapper.xml加载进去)

    3、一对多:和一对一的延迟加载配置相同

    延迟加载的步骤,先查city

    1、开启延迟加载:conf.xml配置settings

    2、配置mapper.xml:配置cityMapper.xml和personMapper.xml

    配置cityMapper.xml

    即:查询person的sql通过select指定,并且通过column指定外键

    配置 personMapper.xml

    根据cityId查询city,这个cityId通过外键传入。

    例:

    conf.xml配置:配置settings和cityMapper.xml配置

    配置cityMapper.xml:

    配置cityMapper.xml

    配置personMapper.xml:

    配置personMapper.xml

    cityMapper接口:

    cityMapper接口

    测试类:

    测试类

    相关文章

      网友评论

          本文标题:10|第十课:MyBatis整合Log4j以及延迟加载

          本文链接:https://www.haomeiwen.com/subject/qigwyqtx.html