一,Mybatis 的核心组件分为4个部分:
1.SqlsessionFactoryBUilder(构造器)
2.SqlsessionFactory(工厂接口)
3.Sqlsession(回话)
4.SQL Mapper(映射器)
二.映射器:
映射器是Mybatis中最重要的,它是由一个interface和对应的XML文件组成,它可以配置以下内容:
1.描述映射规则
2.提供SQL语句,并且可以配置参数的类型,返回类型,缓存刷新等
3.配置缓存
4.提供动态SQL
二.mybatis的配置文件:mybatis-config.xml
<configuration>
<properties/> <!--属性-->
<settings/><!--设置-->
<typeAliases/><!--类型命名-->
<objectFactory/><!--对象工厂-->
<plugins/><!--插件-->
<environments> <!--配置环境主要配置数据库的信息-->
<environment><!--环境变量-->
<transactionManager/><!--事务管理器-->
<dataSource/><!--数据源-->
<environment/>
</environments>
<!-- mapping 文件路径配置 -->
<mappers>
<mapper resource="com/yu/res/UserMapper.xml" />
</mappers>
</configuration>
注意:Mybatis配置项的顺序是不能颠倒,如果颠倒顺序那么Mybatis启动阶段就会发生异常,导致程序无法运行.
三.映射器:
(1).映射器是Mybatis中最重要的,它是由一个interface和对应的XML文件组成,它可以配置以下内容:
1.描述映射规则
2.提供SQL语句,并且可以配置参数的类型,返回类型,缓存刷新等
3.配置缓存
4.提供动态SQL
(2).使用注解传递多个参数:
1.简单的类型的多个参数(略)
2.javaBean传递多个参数(略)
3.上两个参数的混合使用
public class RoleParams{
private Long id;
private String roleName;
private String note;
.................
}
public class PageParams{
private int start;
private int limit;
..............
}
这时候接口设计如下;
public List<Role> getByMix(@Param("params") RoleParams roleParams, @Param("page") PageParams pageParams);
映射文件的代码如下:
<select id="getByMix" resultType="role">
select id,role_name roleName, note from t_note
where role_name like concat('%', #{***params.roleName***}, '%') and note like concat('%', #{**params.note**}, '%')
limit #{**page.start**}, #{**page.limit**}
(3).insert--插入语句
注意:Mybatis 在执行完一条insert语句,会返回一个整数表示其影响记录数
1.主键回填(在添加一条数据返回其主键值)
返回主键:
<insert id="" parameterType="" useGeneratedKeys="true" keyProperty="id">
</insert>
注:1.useGeneratedKeys获取数据库生成的主键值 默认是false
2.keyProperty或者keyCoumn 用哪个Pojo的属性匹配这个主键