开启log4j:
问题:
很多时候我们需要多数据库层代码运行设计到的参数在后台中打印出来,
看参数是否和开发要求匹配。但是mybatis将整个数据库层给封装了,代码
不是我们写的,那么怎么打印底层执行的SQL语句和其他参数呢?
解决:
mybatis底层已经使用log4j提前在代码中声明了日志输出语句。
实现:
在mybatis.xml文件的configuration标签下添加如下配置:
<settings>
<setting name="LogImpl" value="LOG4J"/>
</settings>
作用:
可以查看mybatis底层运行的SQL语句以及参数是否正确
# 日志级别 log4j.rootCategory设置全局的日志级别
log4j.rootCategory=INFO, CONSOLE,LOGFILE
# 位置 单独设置某个包丶类丶方法 的级别和位置
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# 输出到控制台 1 类会用 2 类解析的3格式 把 在rootCategory中的日志级别 及其以上级别的日志打印到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
# 按天 将日志输出到某一文件中 1 类会用 4 类解析的 5 格式把在 rootCategory中的日志级别 及其以上级别的日志输入到 2 文件里
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
开启别名:
问题:
我们在XXXMapper.xml文件中在配置查询标签时,需要配置resultType属性
来指明每条查询结果需要使用哪个实体类存储,而值为实体类的全限定路径(包名和类名),
但是这样造成全限定路径容易拼写错误,以及不好书写。
实现:
在mybatis文件中configuration标签下添加如下配置:
<typeAliases>
<!-- 给某个类单独设置别名,一般是不同包的相同类名 -->
<typeAlias type="com.sxt.pojo.User" alias="f"/>
<!-- 给某个包下的类统一设置别名 即在Mapper.xml文件中的resultType可以直接写类名,无需带上包名-->
<package name="com.sxt.pojo"/>
</typeAliases>
注意:
因为XML文件的标签配置是有先后顺序的,所以typeAliases标签必须声明在setting标签后