Mybatis的属性分析
1、mybatis有哪些属性?
configuration(配置)
-
environments(环境配置)
-
environment(环境变量)
-
transactionManager(事务管理器)
-
dataSource(数据源)
-
-
这是所有的mybatis属性! 作用于Mybatis的核心配置类
2、configuration(配置):
<?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">
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=GMT&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="com.zhang.mapper.EmpMapper"/>
</mappers>
</configuration>
这就是一个简单的核心配置类:
environments: 表示环境,配置类中可以定义多套环境,而 default 表示你默认选中的环境,可以切换
transactionManager: 事务模式
dataSource: 数据源,也就是数据源连接方式
mapper: mapper.xml的映射绑定
properties属性:
这个属性简单的来讲就是一个引入外部配置文件的属性,当然你也可以在这里面进行属性的配置
-
在使用前要先创建一个properties配置文件
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=GMT&useSSL=false
username=root
password=root
-
然后使用Properties引入资源
<properties resource="db.properties"/>
然后就可以用${}这种方式取对应的值了
settings(设置):
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项设置的含义、默认值等。
常用的Setting属性有:日志功能
logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
-
如何使用?
直接在配置文件中开启日志功能即可
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
我们可以看一下日志开启后的运行结果:
这就是简单的日志功能,当然还有更好一点的Log4J日志
Log4J 怎么使用呢?
-
导入对于的Maven坐标
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
-
开启对应的设置
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
-
配置Log4J:
这里可以参考:https://www.cnblogs.com/xuxinstyle/p/10766405.html
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/zhang.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p] [%d{yy-MM-dd}] [%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
我这里使用的是狂神大佬的,可以推荐去看看 真的是很流弊的大佬:
https://www.bilibili.com/video/BV1NE411Q7Nx?from=search&seid=8691256599494985946
-
运行查看
typeAliases(类型别名)
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。
推荐去官网看一下:https://mybatis.org/mybatis-3/zh/configuration.html#typeAliases
映射器(mappers)
既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要来定义 SQL 映射语句了。
但首先,我们需要告诉 MyBatis 到哪里去找到这些语句。
在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件
<!-- 使用相对于类路径的资源引用 --> <mappers> <mapper resource="com/zhang/mapper/EmpMapper.xml"/> </mappers> <!-- 使用映射器接口实现类的完全限定类名 --> <mappers> <mapper class="com.zhang.mapper.EmpMapper"/> </mappers> <!-- 将包内的映射器接口实现全部注册为映射器 --> <mappers> <package name="com.zhang.mapper"/> </mappers>
注意:
使用接口,和包的时候要注意 一定要保证Mapper接口和 Mapper.xml 在同一个包下,并且名字相同。