一、日志配置
1、基本搭建
导入log4j 1的版本
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
创建log4j.properties文件,文件名和扩展名固定,不要随便取其他名字
#定义全局日志级别调试阶段推荐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
#打印到本地硬盘上
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版本的架包
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
在resources文件夹中创建log4j2.xml文件,并把以下内容放置进去
<?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="DEBUG">
<AppenderRef ref="Console" />
<!--<AppenderRef ref="RollingFile" />-->
</Root>
</Loggers>
</Configuration>
运行结果:
二、事务配置
在mybatis核心配置文件中 envirment中 通过transactionManager配置事务的处理策略
JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如 Spring 或 JEE 应用服务器的上下文) 默认情况下它会关闭连接。然而一些容器并不希望这样, 因此如果你需要从连接中停止它,将closeConnection 属性设置为 false. mybatis本身并不做事务的处理,交给其他框架去处理事务,如spring
三、关于映射文件的加载方式
1.mapper映射文件的文件路径导入 使用的mapper标签的resource属性
2.网络资源路径 使用的mapper标签的url属性
3.接口的全限定名导入 使用的是mapper标签的class属性 (基于接口的代理模式开发)
4.包扫描形式加载所有的mapper映射文件 使用的是 package标签
四、关于实体类别名处理
通过包扫描给所有的实体类起别名,给指定包名下的所有类起别名,默认每个实体类的别名是首字母小写的类名
注意标签的先后顺序:
- configuration(配置)
- properties(属性)
- settings(设置)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境配置)
- environment(环境变量)
- transactionManager(事务管理器)
- dataSource(数据源)
- environment(环境变量)
- databaseIdProvider(数据库厂商标识)
- mappers(映射器)
<configuration>
<!--指定的文件-->
<typeAliases>
<typeAlias type="com.xiaohui.entity.Student" alias="student"></typeAlias>
</typeAliases>
<!--包扫描起别名 类的短路径名首字母小写-->
<package name="com.xiaohui.entity"/>
</configuration>
五、关于外部属性配置文件存储数据库连接信息
在resources下准备jdbc.properties属性配置文件,配置文件中的内容
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root
在核心配置文件中引入db.properties属性文件
<properties resource="jdbc.properties"></properties>
<environments default="development">
<environment id="development">
<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>