mybatis重点、精华、用法总结

来源:互联网 发布:java int转char数组 编辑:程序博客网 时间:2024/05/21 15:15

一、何为mybatis框架

1.框架:
网上有各种各样的对框架的定义认识等,个人总结为:将各种有固定操作冗余度高的代码以优秀的设计模式封装、解耦,达到通用,高效开发的目的。

2.Mybatis框架:
mybatis是一个基于java的持久层框架,主要用来做数据访问操作。其底层封装了JDBC,同时进行了解耦和,在项目中可以大大的提高开发效率,使用非常方便。
和JDBC相比,有以下优势:
- 代码冗余度低,开发效率高。
- sql命令在配置文件中书写,代码灵活性大大提高。
- 轻量级,可以自动完成O-R mapping的动作
- 等等

二、mybatis体系结构

1.提供一个映射文件(mapper)向mybatis提出功能要求
通过mapper文件完成功能(.XML)

<mapper namespace=”包名.类名”>    <insert id=”将要实现接口中的方法名”>        insert into 表名 values(.....)    </insert>    <select id=”将要实现接口中的方法名”>        select * from.....    </select>    <update id=”将要实现接口中的方法名”>    </update></mapper>

2.mybatis根据给定的mapper文件自动生成相应的java实现类

3.mybatis核心类
SqlSessionFactoryBuilder : 负责加载mybatis-config.xm文件内容
SqlSessionFactory:负责构建SqlSession
SqlSession : 一次数据库会话,包含了多次数据库访问操作,相当于jdbc中的connection

4.配置文件模板:
详见http://blog.csdn.net/edwinbalance/article/details/75860872此篇文章(亲测可用)

三、搭建环境

1.引入jar包:
mybatis-3.2.2.jar(mybatisjar包)、对应数据库所对应jar包、log4j-1.2.17.jar(打印日志)

2.为mybatis设置运行环境(通过配置文件)
将mybatis-config.xml和log4j-1.2.17.jar文件放在src目录下

四、应用

1.新建表和实体类
2.定义dao接口
3.通过配置文件实现dao接口(…)
4.将配置文件配置到mybatis-config.xml中()
5.编写测试类

4.1查询

select 字段名 as 结果字段名,……frmo 表名 where 条件

注:mybatis会自动将结果集中的数据封装成指定返回类型的对象。封装时,将结果集里的字段值设置到对象的相应属性中,要求字段名和属性名相同,否则会报错。

五、ORM

5.1 resultMap
自定义mybetis查询结果集和实体的映射关系

如果实体对象和关系属性的关系是 has one —>

<resultMap  id=””  type=”所用映射的实体的全类名”>    <id property=”实体的属性名” column=”结果集属性列”/>    <result property=”” column=”” />    <association property=”实体名” javaType=”实体全限定名”>        <id property=”” column=””/>        <result property=”” column=”” />    </association></resultMap>

如果实体对象和关系属性的关系是 has manny —>

<resultMap>    <id property=”” column=”” />    <result property=”” column=”” />    <collection property=”” javaType=””>        <id property=”” column=””/>        <result property=”” column=””/>    </collection></resuleMap>

5.2 如果查询操作有多个:

1.不能用rseulrType属性
2.接口方法声明时,对每个参数使用 @param(value=”参数名”)
例如:
public List queryAllUser(@Param(“参数别名”)参数类型 参数名,…);
3.mapper文件中sql,绑定参数 #{参数别名}

六、补充

6.1当sql语句中需要使用大于小于号时,由于xml是一种标签语言,会将其解析为<>括号,固有以下两种解决方案:
方案一:

使用<![CDATA[select...]]>

方案二:使用转义字符

> : &gt< :&lt