一 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 resource="db.properties"/>
可以外界引入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>