1.引入log4j的依赖
<!-- log4j jar包-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2.在resources目录下新建log4j.xml文件,
其中“http://jakarta.apache.org/log4j/”地址会报红,报异常,但是这个并不影响程序执行。
日志的级别:
FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!--#log4j中有5级logger ,#FATAL 0 ,#ERROR 3 ,#WARN 4 ,#INFO 6 ,#DEBUG 7 -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!--输出到控制台-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8"/>
<!-- 日志输出格式 -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
</layout>
</appender>
<!-- java.sql这个包下,采用debug级别输出-->
<logger name="java.sql">
<level value ="debug"/>
</logger>
<!-- org.apache.ibatis这个包下,采用info级别输出-->
<logger name="org.apache.ibatis">
<level value ="info"/>
</logger>
<!-- 根logger的设置,若代码中未找到指定的logger,则会根据继承机制,使用根logger-->
<root>
<!-- 其他的都是正常的debug级别-->
<level value="debug"/>
<appender-ref ref="STDOUT"/>
</root>
</log4j:configuration>
STDOUT
是standard output的缩写,意思是标准输出,对于Java程序来说,打印到标准输出就是打印到控制台。
关联外部属性文件
一套代码往往对应多个不同数据库服务器环境,使用数据库连接参数也不同,建议把数据库连接信息提取到Mybatis全局配置文件外面。
新建jdbc.properties文件,在resources
wechat.dev.driver=com.mysql.jdbc.Driver
wechat.dev.url=jdbc:mysql://192.168.192.110:3306/mybatis-example
wechat.dev.username=root
wechat.dev.password=root1
wechat.test.driver=com.mysql.jdbc.Driver
wechat.test.url=jdbc:mysql://192.168.192.111:3306/mybatis-example
wechat.test.username=root
wechat.test.password=root1
wechat.uat.driver=com.mysql.jdbc.Driver
wechat.uat.url=jdbc:mysql://192.168.192.112:3306/mybatis-example
wechat.uat.username=root
wechat.uat.password=root1
wechat.product.driver=com.mysql.jdbc.Driver
wechat.product.url=jdbc:mysql://192.168.192.113:3306/mybatis-example
wechat.product.username=root
wechat.product.password=root1
同时还要修改mybatis-config.xml文件
在configuration标签内,增加properties 标签,并在resource属性内指向jdbc文件的文件名。
代码执行过程中遇到**${}** 就回去找该配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis的主配置文件 -->
<configuration>
<!-- 配置环境 -->
<!-- 配置外部属性文件,jdbc.properties的位置-->
<properties resource="jdbc.properties"/>
<!-- environments表示配置Mybatis的开发环境,可以配置多个环境,在众多具体环境中,使用default属性指定实际运行时使用的环境,default
属性的取值是environment标签中id的取值-->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务的类型,Mybatis的内置的事务管理器-->
<transactionManager type="JDBC"/>
<!-- 配置数据源(连接池) -->
<dataSource type="POOLED">
<!-- 配置连接数据库的4个基本信息 -->
<!-- 驱动-->
<property name="driver" value="${wechat.dev.driver}"/>
<property name="url" value="${wechat.dev.url}"/>
<property name="username" value="${wechat.dev.name}"/>
<property name="password" value="${wechat.dev.password}"/>
</dataSource>
</environment>
</environments>