1:属性优化
1:参数
这个一个普通的MyBatis的环境配置:
<?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="development">
<!-- 这个环境的命名-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc.url=jdbc:mysql://localhost:3306/web_work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"/>
<property name="username" value="root"/>
<property name="password" value="123321"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--这里填写和mapper的xml的路径来进行配置连接 -->
<mapper resource="resource/userMapper.xml"/>
</mappers>
</configuration>
我们可以在mybatis-config.xml中再添加一套环境,这样在需要测试或者改变配置时,就不需要大量的修改代码
<?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="development">
<!-- 这个环境的命名-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc.url=jdbc:mysql://localhost:3306/web_work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"/>
<property name="username" value="root"/>
<property name="password" value="123321"/>
</dataSource>
</environment>
<!-- 在这里环境的id不一样-->
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc.url=jdbc:mysql://localhost:3306/web_work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"/>
<property name="username" value="rootTest"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--这里填写和mapper的xml的路径来进行配置连接 -->
<mapper resource="resource/userMapper.xml"/>
</mappers>
</configuration>
在上面的环境配置中environments标签的改动可以让你选择并修改你想要的被使用的一套环境配置
其中transactionManager为事务管理器,其中有两个参数可以选择但一般选择JDBC
以下为在MyBatis上截取到的描述
还要一个就是dataSource为数据源,其中有3个参数可以选择但一般也只选择POOLED即可
以下为在MyBatis上截取到的描述
其三种参数的作用因内容太长,我就不在这赘述,感兴趣者可以移步MyBatis中文文档查看
2:属性
在配置中我们可以设置properties,来减少耦合,且方便切换配置参数
我们可以在外部的properties文件来给定jdbc属性,然后经过properties标签,那么xml就可以自动调用
<properties resource="db.properties">
<property name="username" value="rootTest"/>
<property name="password" value="123123"/>
</properties>
我们也可以在property中填写相应信息,但优先级是:外部properties>内部property
而在所对应的JDBC参数我们用**${}**来代替
完全的样式为:
<?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">
<properties resource="db.properties">
<property name="username" value="rootTest"/>
<property name="password" value="123123"/>
</properties>
<configuration>
<!-- 默认使用的环境-->
<environments default="development">
<!-- 这个环境的命名-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--这里填写和mapper的xml的路径来进行配置连接 -->
<mapper resource="resource/userMapper.xml"/>
</mappers>
</configuration>
而外部的db.properties文件即为:
driver:com.mysql.cj.jdbc.Driver
url:jdbc.url=jdbc:mysql://localhost:3306/web_work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
username:root
password:123321
别名优化
方法1
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写,简化代码。
要用到别名,我们需要typeAliases标签。
<typeAliases>
<typeAlias alias="User" type="com.nicht.pojo.User"/>
<typeAlias alias="Test" type="com.nicht.pojo.Test"/>
</typeAliases>
当这样配置时,User 可以用在任何使用 com.nicht.pojo.User 的地方,当然也包括mapper中的配置
方法2
我们也可以使用typeAliases其下的package标签,他会扫描包下的所有javabean类,在使用时,别名必须是其javabean类小写的样式
<typeAliases>
<package name="com.nicht.pojo"/>
</typeAliases>
那么我要是想使用User类,别名就必须使用user,不能像第一种diy别名
方法3
如果一定要用第二种且一定要DIY别名的话,我们就需要在javabean类中添加注解
@Alias("User_test")
public class User {
...
}
那么我们就可以使用User_test来代替com.nicht.pojo.User使用
映射器优化
映射器mappers的优化我只推荐两种(主要还是第一种)
方法一
一种是最开始使用resource属性
<mappers>
<mapper resource="resource/userMapper.xml"/>
<mapper resource="resource/cityMapper.xml"/>
</mappers>
这种方法可以把映射器放在任意的位置,比较好方便统一管理
方法二
第二种为package标签,他可以把包下所有的映射器都注册
<mappers>
<package name="com.nicht.dao"/>
</mappers>
但有一个唯一的要求就是所对应的映射器和接口必须在同一个包下才能使用
方法三
第二种为class属性,他主要针对的是利用注解来开发的情况
注意:mapper的xml和mapper的接口需要在同一包下
<mappers>
<mapper class="com.nicht.dao.userMapper"/>
</mappers>
设置优化
主要推荐记住这三个设置,其余的可在MyBatis中文文档中查看