mybatis可以使用properties来引入外部properties配置文件的内容;
<properties resource="dbconfig.properties"></properties>
在全局配置文件中使用外部配置文件:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
settings包含很多重要的设置项
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
注意:别名不区分大小写
typeAliases:别名处理器,可以为Java类型起别名
<typeAliases>
<typeAlias type="mybatis.bean.Employee" alias="emp"/>
</typeAliases>
package:为某个包下的所有类批量起别名
* name:指定包名。(为当前包以及所有的子包的每一个类都起一个默认别名(类名小写))
<typeAliases>
<!-- <typeAlias type="mybatis.bean.Employee" alias="emp"/> -->
<package name="mybatis.bean"/>
</typeAliases>
在批量起别名的情况下,可以使用@Alias注解为某个类型指定新的别名。
@Alias("emp")
public class Employee {
...
}
Alias | Mapped Type |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
<environments default="development">
<environment id="test">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
全局配置文件(mybatis-config.xml):
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql" />
<property name="Oracle" value="oracle" />
<property name="SQL Server" value="sqlserver" />
</databaseIdProvider>
sql映射文件中可以使用databaseId属性指定数据库厂商的别名
<!-- 带数据库标识的和所有不带数据库标识的都会被加载 ,之后会根据具体的环境执行更精确的sql-->
<select id="getEmpById" resultType="mybatis.bean.Employee" >
select * from tbl_employee where id = #{id}
</select>
<select id="getEmpById" resultType="mybatis.bean.Employee" databaseId="mysql">
select * from tbl_employee where id = #{id}
</select>
<select id="getEmpById" resultType="mybatis.bean.Employee" databaseId="oracle">
select EMPLOYEE_ID id, LAST_NAME lastName, EMAIL email
from employees where EMPLOYEE_ID = #{id}
</select>
<!-- 将sql映射文件注册到全局配置文件中 -->
<mappers>
<mapper resource="mybatis/mapper/EmployeeMapper.xml" />
<!-- <mapper class="mybatis.dao.EmployeeMapper"/> -->
<mapper class="mybatis.dao.EmployeeMapperAnnotation"/>
</mappers>
注解方式:
public interface EmployeeMapperAnnotation {
@Select("select * from tbl_employee where id=#{id}")
public Employee getEmpById(Integer id);
}
<!-- 将sql映射文件注册到全局配置文件中 -->
<mappers>
<!-- <mapper resource="mybatis/mapper/EmployeeMapper.xml" /> -->
<!-- <mapper class="mybatis.dao.EmployeeMapper"/> -->
<!-- <mapper class="mybatis.dao.EmployeeMapperAnnotation"/> -->
<!-- 批量注册 -->
<package name="mybatis.dao"/>
</mappers>
原文:https://www.cnblogs.com/pensieve/p/13613836.html