mybatis重点、精华、用法总结

一、何为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
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值