一 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>
<!-- 属性:定义配置外在化 -->
<properties></properties>
<!-- 设置:定义mybatis的一些全局性设置 -->
<settings>
<!-- 具体的参数名和参数值 -->
<setting name="" value=""/>
</settings>
<!-- 类型名称:为一些类定义别名 -->
<typeAliases></typeAliases>
<!-- 类型处理器:定义Java类型与数据库中的数据类型之间的转换关系 -->
<typeHandlers></typeHandlers>
<!-- 对象工厂 -->
<objectFactory type=""></objectFactory>
<!-- 插件:mybatis的插件,插件可以修改mybatis的内部运行规则 -->
<plugins>
<plugin interceptor=""></plugin>
</plugins>
<!-- 环境:配置mybatis的环境 -->
<environments default="">
<!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量 -->
<environment id="">
<!-- 事务管理器 -->
<transactionManager type=""></transactionManager>
<!-- 数据源 -->
<dataSource type=""></dataSource>
</environment>
</environments>
<!-- 数据库厂商标识 -->
<databaseIdProvider type=""></databaseIdProvider>
<!-- 映射器:指定映射文件或者映射类 -->
<mappers></mappers>
</configuration>
1.属性
可以外界引入properties文件,在配环境时可以直接动态绑定
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
2.设置setting
setting是mybatis中极为重要的调整设置,他们会改变mybatis运行时的行为。
一个完整的setting元素
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
3.类型别名
类型别名是为java类型设置的一个短的名字。他只和xml配置有关,存在的意义进在于用来减少类完全限定名的冗余。
<typeAliases>
<typeAlias alias="user" type="cn.mybatis.domain.User"/>
</typeAliases>
也可以给包起别名(多实体类),给包起别名的时候,包内的实体类名就是完全限定名.
<typeAliases>
<package name="cn.mybatis.domain"/>
</typeAliases>
若有注解,则别名为其注解值.
@Alias ("user")
public class User {
...
}
4.类型处理器(typeHandlers)
未完待续…
5.对象工厂(objectFactory)
未完待续…
6、插件(plugins)
未完待续
7.环境配置
<!-- 环境 -->
<!--某一个环境默认值(指定的下文ID的环境)-->
<environments default="default">
<!--可多个数据源-->
<environment id="default">
<!--事务管理,现指定的是jdbc-->
<!--由jdbc负责事务的提交回滚-->
<transactionManager type="JDBC"/>
<!--数据源数据池pooled-->
<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>
8.mapper映射文件
<!-- mapper映射文件 -->
<mappers>
<!-- mapper文件路径 *Mapper.xml-->
<!-- <mapper resource="ProductMapper.xml"/>
<mapper resource="UserMapper.xml"/> -->
<!-- package配置mapper包 -->
<package name="com.gem.demo.mapper"/>
</mappers>
</configuration>
二 mapper配置文件
<?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">
<mapper namespace="com.gem.demo.mapper.ProductMapper">
<!--id值唯一,resultType是结果映射类型,指定全类名,核心文件起别名后可以直接写类型-->
<!--com.gem.demo.entity.Product-->
<select id="findAll" resultType="Product">
select * from product
</select>
</mapper>