配置文件
mybatis-config.xml
<?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>
<!-- 别名 -->
<typeAliases>
<typeAlias type="包名.类名" alias="别名"/>
<!-- 类型转换器 -->
<typeAlias type="包名.类名" alias="转化器别名"/>
</typeAliases>
<!-- 转换器 -->
<typeHandlers>
<typeHandler handler="转化器别名" javaType = "要转化成的类型" jdbcType = "jdbc类型"/>
</typeHandlers>
<!-- 数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="类驱动" />
<property name="url" value="url" />
<property name="username" value="数据库账号" />
<property name="password" value="数据库密码" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="映射器包/映射器.xml"/>
</mappers>
</configuration>
<configuration> 配置
<properties/> 属性 常用
<settings/> 设置 常用
<typeAliases/> 类型别名 常用
<typeHandlers/> 类型处理器 常用
<objectFactory/> 对象工厂 不常用
<plugins/> 插件 常用
<environments> 配置环境 常用
<environment> 环境变量
<transactionManager /> 事务处理器
<dataSource /> 数据源
</environment>
</environments>
<databaseIdProvider /> 数据库厂商表示 不常用
<mappers/> 映射器 常用
log4j.properties
log4j.rootLogger=WARN, stdout
log4j.logger.org.mybatis=DEBUG
# stdout is set to be a ConsoleAppender.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# stdout uses PatternLayout.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
映射器
<?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="mapper.PeopleMapper">
<!--自定义的构造器-->
<resultMap type="别名" id="resultMap的id">
<!--构造器-->
<constructor>
<idArg column="对应自增id" javaType = "int"/>
<arg column = "对应属性" javaType = "属性的类型"/>
</constructor>
<id property="id" column = "id"/>
<result property="属性" column = "对应数据库中的列"/>
</resultMap>
<!--CRUD操作下面介绍-->
<select id="定义的接口中的方法的名字" resultType="返回值类型">
sql语句
</select>
<select id="定义的接口中的方法的名字" parameterType="参数类型" resultType="返回值类型">
sql语句
</select>
</mapper>
select
Select
Id与命名空间组合起来是唯一的
parameterType可以给出类的全限定名,也可以给出别名,
resultType定义类的全路径,在允许自动匹配的情况下,结果集将通过Java Bean的规范映射;或定义为int,double,float,map等参数;也可以使用别名,但不能和resultMap同时使用
resultMap映射集的引用,执行强大的自定义映射功能,可以配置映射规则,级联,typeHandler等
flushCache调用SQL后,是否要求Mybatis清空之前查询本地缓存和二级缓存
useCache启用二级缓存的功能,是否要求mybatis将此次结果缓存
insert
Insert配置属性
Id SQL编号
parameterType 参数类型,同select 一样
flushCache是否刷新缓存,true/false,为true会刷新一级、二级缓存,否则不刷新,默认为true
useGeneratedKey是否用JDBC的getGeneratedKeys方法来取出有数据库内部生成的主键(如MYSQL和SQL Server这样的数据库表的自增主键)默认值false
keyProperty(仅对insert,update属性有用)唯一标记一个属性
Insert配置属性
<insert id="addRole" parameterType="role">
insert into role(role_name, note) values(#{roleName}, #{note})
</insert>
Id标识出这条SQL,结合命名空间
parameterType代表传入参数类型
Insert主键回填
Insert配置属性
<insert id=“addRole” parameterType=“role“ useGeneratedKeys =“true” keyProperty=“id”>
insert into role(role_name, note) values(#{roleName}, #{note})
</insert>
useGeneratedKeys返回主键
keyProperty将用哪个POJO的属性去匹配这个主键,这里的是id
update与delete与select一样