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);