1.MyBatis的日志配置
log4j1和log4j2的使用
在项目中添加依赖
log4j2 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.12.1</version> </dependency> log4j1 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
log4j 1
将log4j.properties(一个字母一个大小写都不能错)文件负责到src中的resources下。另外在其中可以将全局的日志级别调高,避免大量debug信息的干扰。同时将对映射文件的操作调低,可以用来显示SQL语句的调试信息。开发阶段,建议启动控制的日志。
#定义全局日志级别调试阶段推荐debug 我们选择打印的方式是stdout,debug是日志的打印级别 打印级别分为 error warn info debug log4j.rootLogger=debug,stdout //将日志打印到控制台上我该怎么去配置 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.err log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout //将日志打印到D盘msb.log中该怎么去配置 log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=d:/msb.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n
log4j 2
将log4j2.xml文件负责到resources下。
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="DEBUG"> <Appenders> <Console name="Console" target="SYSTEM_ERR"> <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> </Console> <RollingFile name="RollingFile" filename="log/test.log" filepattern="${logPath}/%d{YYYYMMddHHmmss}-fargo.log"> <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> <Policies> <SizeBasedTriggeringPolicy size="10 MB" /> </Policies> <DefaultRolloverStrategy max="20" /> </RollingFile> </Appenders> <Loggers> <Root level="INFO"> <AppenderRef ref="Console" /> </Root> </Loggers> </Configuration>
2.MyBatis的事务配置
在mybatis核心配置文件中 envirment中 通过transactionManager配置事务的处理策略
JDBC– 这个配置直接简单使用了 JDBC 的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
MANAGED– 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如 Spring 或 JEE 应用服务器的上下文) 默认情况下它会关闭连接。然而一些容器并不希望这样, 因此如果你需要从连接中停止它,将 closeConnection 属性设置为 false. mybatis本身并不做事务的处理,交给其他框架去处理事务,如spring
3.MyBatis实体类别名处理
在mybatis核心配置文件中使用别名处理
<!--设置实体类别名--> <typeAliases> <!-- 通过包扫描给所有的实体类起别名 给指定报名下的所有类起别名 默认每个实体类的别名是首字母小写的类名 Dept dept Emp emp --> <package name="com.msb.pojo"/> </typeAliases>
在映射文件的resultType 返回值类型 和paramterType 上就可以使用别名了
<select id="selectByEmpno" resultType="emp"> select * from emp where empno = 7566 </select>
4.MyBatis外部属性配置文件存储数据库连接
在resources下准备jdbc.properties属性配置文件
配置文件中的内容
jdbc_driver=com.mysql.cj.jdbc.Driver jdbc_url=jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai jdbc_username=root jdbc_password=root
在核心配置文件中引入db.properties属性文件
<properties resource="jdbc.properties"></properties> <settings> <!--设置日志处理方式--> <setting name="logImpl" value="LOG4J"/> </settings> <!--设置实体类别名--> <typeAliases> <!-- 通过包扫描给所有的实体类起别名 给指定报名下的所有类起别名 默认每个实体类的别名是首字母小写的类名 Dept dept Emp emp --> <package name="com.msb.pojo"/> </typeAliases> <!--配置数据库链接信息--> <environments default="mysql"> <!--数据源1--> <environment id="mysql"> <transactionManager type="JDBC"/> <!--一个数据源--> <dataSource type="POOLED"> <property name="driver" value="${jdbc_driver}"/> <property name="url" value="${jdbc_url}"/> <property name="username" value="${jdbc_username}"/> <property name="password" value="${jdbc_password}"/> </dataSource> </environment> </environments> <!--加载映射文件的--> <mappers> <mapper resource="com/msb/mapper/DeptMapper.xml"/> </mappers> </configuration>