目录
一、配置文件
mybatis-confifig.xml 是系统核心配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/40e748915cb5a1ff366e6e02cf149160.png)
不同的设置有固定的位置,不能写错顺序,顺序如下:
properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?, reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?
1、properties
2、typeAliases
<!--可以给实体类起别名
在实体类比较少的时候,使用方式一
如果实体类比较多,建议使用方式二
第一种方式可以自定义(DIY)别名,第二种则不行,如果非要改,需要在实体类上增加注解
-->
<!--方式一:指定具体的Java文件,并为其取别名-->
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
<typeAlias alias="Comment" type="domain.blog.Comment"/>
<typeAlias alias="Post" type="domain.blog.Post"/>
<typeAlias alias="Section" type="domain.blog.Section"/>
<typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>
<!--方式二:扫描该包下的Java文件,并以其包名为别名(首字符小写) -->
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
3、environments
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="..." value="..."/>
</transactionManager>
<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>
配置
MyBatis
的多套运行环境(environment),将
SQL
映射到多个不同的数据库上,必须指定其中一个为默认运行
环境(通过
default指定)。具体的一套环境,通过设置
id
进行区别,
id
保证唯一。
environment(环境配置)
1、事务管理器(transactionManager)
在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]")。
2、数据源(dataSource)
大多数 MyBatis 应用程序会按示例中的例子来配置数据源。虽然数据源配置是可选的,但如果要启用延迟加载特性,就必须配置数据源。
有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]")
4、mappers
<mappers>
<!--方式一:(推荐使用)-->
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<!--方式二:使用class文件绑定注册-->
<mapper class="org.mybatis.builder.AuthorMapper"/>
<!--方式三:使用扫描包进行注册绑定-->
<package name="org.mybatis.builder"/>
<!--
这两种方式的注意点:
1、接口和他的Mapper配置文件必须同名
2、接口和他的Mapper配置文件必须在同一包下
-->
</mappers>
二、ResultMap
主要解决数据库中的字段名与实体类中的属性名不一致问题
<!--resultMap:解决数据库中的字段名与实体类中的属性名不一致的问题-->
<resultMap id="UserMap" type="User">
<!--column对应数据库中的字段,property对应实体类中的属性-->
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserById" parameterType="int" resultMap="UserMap">
select * from mybatis.user where id=#{id}
</select>