一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。
强化MyBatis
在Mybatis工作过程中,通过打印日志的方式,将要执行的SQL语句打印出来。
加入log4j日志功能
a>加入依赖
<!-- log4j日志 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
b>加入log4j的配置文件
log4j的配置文件名为log4j.xml,存放的位置是src/main/resources目录下,这个配置文件的名字不能改!!!
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<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{MM-dd HH:mm:ss,SSS}
%m (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="info" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
日志的级别
FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)
从左到右打印的内容越来越详细
打印输出
DEBUG 03-03 14:22:43,210 ==> Preparing: insert into t_user values (1 ,'admin','123456',23,'男','123@qq.com') (BaseJdbcLogger.java:137)
DEBUG 03-03 14:22:43,242 ==> Parameters: (BaseJdbcLogger.java:137)
查询功能
如果查的只是一条数据,就拿实体类对象接受,如果是很多数据,就用List集合就行
在mybatis中每一个sql语句都有单独的标识,mapper接口的全类名+方法名,当mybatis执行sql语句时就是根据mapper接口的全类名找到映射文件,通过方法名找到sql语句
<!-- User getUserById();
查询功能的标签必须设置resultType和resultMap
resultType:设置默认的映射关系
resultMap:设置自定义的映射关系
-->
<select id="getUserById" resultType="com.yzh.mybatis.User">
select * from t_user where id = 1
</select>
<!-- List<User> getAllUser();-->
<select id="getAllUser" resultType="com.yzh.mybatis.User">
select * from t_user
</select>
// User userById = mapper.getUserById();
// System.out.println(userById);
List<User> allUser = mapper.getAllUser();
allUser.forEach(user -> System.out.println(user));
输出结果
DEBUG 03-04 10:42:12,641 ==> Preparing: select * from t_user (BaseJdbcLogger.java:137)
DEBUG 03-04 10:42:12,673 ==> Parameters: (BaseJdbcLogger.java:137)
DEBUG 03-04 10:42:12,698 <== Total: 2 (BaseJdbcLogger.java:137)
User{id=1, username='张三', password='123456', age=23, sex='男', email='123@qq.com'}
User{id=2, username='admin', password='123456', age=23, sex='男', email='123@qq.com'}