db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://192.168.8.136:3306/mybatis
username=root
password=root

mybatis-config.xml

<!-- 外部 properties 配置文件  -->
<properties resource="db.properties"/>

<!--配置数据源-->
<environments default="development-mysql">
    <environment id="development-mysql">
        <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>

http://www.mybatis.org/mybatis-3/zh/configuration.html#properties

 

二、MyBatis 配置

mybatis-config.xml

<settings>
    <!-- 数据库字段下划线转 Bean 字段的驼峰命名 -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    <!-- 控制台打印SQL -->
    <setting name="logImpl" value="STDOUT_LOGGING" />
</settings>

更多配置:http://www.mybatis.org/mybatis-3/zh/configuration.html#settings

 

三、别名处理

<!-- typeAliases:别名处理器:可以为 JavaBean 类型起别名,别名不区分大小写 -->
<typeAliases>
    <!-- typeAlias:为某个java类型起别名,type:指定要起别名的类型全类名;默认别名就是类名小写,alias:指定新的别名 -->
    <!--<typeAlias type="com.bean.MyUser" alias="myUser"/>-->

    <!-- package:为某个包下的所有类批量起别名,name:指定包名,为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写) -->
    <package name="com.bean"/>

    <!-- 批量起别名的情况下,可以在 Bean 上使用 @Alias 注解为某个类指定新的别名 -->
</typeAliases>

设置别名后映 SQL 射文件的返回值可不写全类名

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace 对应接口文件的全路径 -->
<mapper namespace="com.dao.MyUserMapper">
    <!-- id 与接口文件方法名对应,resultType 设置别名后返回类型可写别名 -->
    <!--<select >-->
    <select id="selectMyUser" resultType="myUser">
      select * from myuser where id = #{id}
    </select>
</mapper>

MyBatis 为基本数据类型默认设置了别名:http://www.mybatis.org/mybatis-3/zh/configuration.html#typeAliases

 

四、多环境配置

<!-- environments:环境配置,default 指定使用某种环境
     environment:配置具体环境信息;有两个标签;id代表当前环境唯一标识
        transactionManager:事务管理器
            type:事务管理器的类型 JDBC(JdbcTransactionFactory) | MANAGED(ManagedTransactionFactory)
            自定义事务管理器:实现 TransactionFactory 接口,type 为全类名
        dataSource:数据源
            type:数据源类型 UNPOOLED(UnpooledDataSourceFactory) | POOLED(PooledDataSourceFactory) | JNDI(JndiDataSourceFactory)
            自定义数据源:实现 DataSourceFactory 接口,type 为全类名 -->
<environments default="development-dev">
    <environment id="development-dev">
        <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>

    <environment id="development-sit">
        <transactionManager type="MANAGED"/>
        <dataSource type="UNPOOLED">
            <property name="driver" value="${sit.driver}"/>
            <property name="url" value="${sit.url}"/>
            <property name="username" value="${sit.username}"/>
            <property name="password" value="${sit.password}"/>
        </dataSource>
    </environment>
</environments>

变量配置注册类:org.apache.ibatis.session.Configuration

typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class);
typeAliasRegistry.registerAlias("MANAGED", ManagedTransactionFactory.class);

typeAliasRegistry.registerAlias("JNDI", JndiDataSourceFactory.class);
typeAliasRegistry.registerAlias("POOLED", PooledDataSourceFactory.class);
typeAliasRegistry.registerAlias("UNPOOLED", UnpooledDataSourceFactory.class);

typeAliasRegistry.registerAlias("PERPETUAL", PerpetualCache.class);
typeAliasRegistry.registerAlias("FIFO", FifoCache.class);
typeAliasRegistry.registerAlias("LRU", LruCache.class);
typeAliasRegistry.registerAlias("SOFT", SoftCache.class);
typeAliasRegistry.registerAlias("WEAK", WeakCache.class);

typeAliasRegistry.registerAlias("DB_VENDOR", VendorDatabaseIdProvider.class);

typeAliasRegistry.registerAlias("XML", XMLLanguageDriver.class);
typeAliasRegistry.registerAlias("RAW", RawLanguageDriver.class);

typeAliasRegistry.registerAlias("SLF4J", Slf4jImpl.class);
typeAliasRegistry.registerAlias("COMMONS_LOGGING", JakartaCommonsLoggingImpl.class);
typeAliasRegistry.registerAlias("LOG4J", Log4jImpl.class);
typeAliasRegistry.registerAlias("LOG4J2", Log4j2Impl.class);
typeAliasRegistry.registerAlias("JDK_LOGGING", Jdk14LoggingImpl.class);
typeAliasRegistry.registerAlias("STDOUT_LOGGING", StdOutImpl.class);
typeAliasRegistry.registerAlias("NO_LOGGING", NoLoggingImpl.class);

typeAliasRegistry.registerAlias("CGLIB", CglibProxyFactory.class);
typeAliasRegistry.registerAlias("JAVASSIST", JavassistProxyFactory.class);

languageRegistry.setDefaultDriverClass(XMLLanguageDriver.class);
languageRegistry.register(RawLanguageDriver.class);
View Code

相关文章:

  • 2022-02-26
  • 2021-07-06
  • 2021-09-10
  • 2021-05-11
  • 2022-12-23
  • 2021-04-15
  • 2022-12-23
  • 2021-12-28
猜你喜欢
  • 2021-10-31
  • 2021-08-17
  • 2022-12-23
  • 2021-10-14
  • 2021-12-01
  • 2021-11-30
相关资源
相似解决方案