mybatis之配置优化

属性优化

properties
  • 外部配置文件【db.properties】
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC
username=root
password=admin#1234
  • 引入外部配置文件
<!--    引入外部配置文件,也可以加入一些属性,当两者冲突时,以外部文件为准-->
    <properties resource="db.properties">
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </properties>
environments
<!--可以配置多个环境变量,但是同时只能选择一个环境  <environments default="test">-->
    <environments default="test">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="admin#1234"/>
            </dataSource>
        </environment>

        <environment id="test">
            <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>
settings
    <settings>
<!--        是否开启缓存-->
        <setting name="cacheEnabled" value="true"/>
<!--        是否开启懒加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
<!--允许 JDBC 支持自动生成主键,需要数据库驱动支持。如果设置为 true,将强制使用自动生成主键。尽管一些数据库驱动不支持此特性,但仍可正常工作(如 Derby)-->
        <setting name="useGeneratedKeys" value="false"/>
<!--是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。-->
        <setting name="mapUnderscoreToCamelCase" value="false"/>
<!--        指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING-->
<!--        <setting name="logImpl" value="LOG4J "/>-->
    </settings>

别名优化

<!--    给实体类加别名-->
	<typeAlias type="com.yeyue.pojo.User" alias="User"></typeAlias> 

<!--    <package name="com.yeyue.pojo"/> 指定一个包名,会在包下扫描实体类,默认以类名的首字母小写作为别名,不可以自定义别名,但可以借助注解来实现
@Alias("RealUser")
public class User {}
-->
    <typeAliases>
        <package name="com.yeyue.pojo"/>
    </typeAliases>

映射器

  • UserMapper.xml直接在核心配置文件中注册
<mapper resource="com\yeyue\dao\UserMapper.xml"/>
  • 通过接口类来映射

    • 类和mapper配置文件需要同名
    • 类和mapper配置文件必须在同一包下
  <mapper class="com.yeyue.dao.UserMapper"/>
  • 通过包来映射
    • 类和mapper配置文件需要同名
    • 类和mapper配置文件必须在同一包下
<package name="com.yeyue.dao"/>
posted @ 2021-09-01 12:06  深夜暗月  阅读(79)  评论(0)    收藏  举报