文档章节

MyBatis入门

 向阳而生
发布于 2015/11/05 22:55
字数 977
阅读 48
收藏 0
  1. 概要

    MyBatis。是一个基于SQL映射支持Java和·NET的持久层框架。ORM映射框 Hibernate(一站式),Apache OJB(一站式)Mybatis(半自动)。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.

           相对 Hibernate 和 Apache OJB 等“一站式”ORM 解决方案而言,ibatis 是一种“半自动化”的 ORM 实现。所谓“半自动” ,可能理解上有点生涩。纵观目前主流的 ORM,无论 Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从 POJO 到数         据库表的全套映射机制。 程序员往往只需定义好了 POJO 到数据库表的映射关系, 即可通过 Hibernate或者 OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行。

             大多数情况下(特别是对新项目,新系统的开发而言) ,这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。

        在笔者的系统咨询工作过程中,常常遇到以下情况:

            1.  系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条 Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。

            2.  开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)

            3.  系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的 SQL 语句(或存储过程)才能达到系统性能设计指标。 直接使用 JDBC进行数据库操作实际上也是不错的选择, 只是拖沓的数据库访问代码, 乏味的字段读取操作令人厌烦。

       全自动化POJO和数据之间的映射以及SQL语句的自动生成和执行,ibatis在于 POJO 与 SQL 之间的映射关系。 也就是说, ibatis并不会为程序员在运行期自动生成 SQL 执行

 ORM(Object Relational Mapping)工具

    无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:
    1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.
    2. 由sessionfactory  产生 session
    3. 在session 中完成对数据的增删改查和事务提交等.
    4. 在用完之后关闭session 。

       5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

           

凡是使用ORM框架效率性能都会比JDBC差些。

2、与JDBC的区别

    1、JDBC释放资源的写法很容易出错,使用框架后这个问题就基本不存在了。即使用JDBC,一般也要封装一个Util类来处理,如Srping的JDBC Template,否则每个SQL语句外面包一大坨try/catch语句太麻烦了。
    2、对于常见的多个选择参数的查询页面,使用mybatis的标签很容易处理多个参数组合使用的情况,相比较写JDBC的拼接字符串要容易。
    3、如果项目中使用的是java的实体类,使用Mybatis可以方便的实现数据库行和对象的映射,手工写JDBC的话这部分的代码量会比较大,而且重复性很高。



        

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 12
码字总数 21205
作品 0
朝阳
私信 提问
MyBatis3.2.x从入门到精通系列

Java框架篇---Mybatis 入门 MyBatis3.2.x从入门到精通之第一章 MyBatis3.2.x从入门到精通之第二章 MyBatis3.2.x从入门到精通之第三章 MyBatis3.2.x从入门到精通之第四章 MyBatis3.2.x从入门到...

HenrySun
2016/10/07
54
0
Mybatis接口编程方式实现增删改查

前面一章Mybatis入门概述及第一个Mybatis实例实现增删改查 ,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的S...

waj清风
2018/12/18
0
0
Mybatis 轻松入门教程

Mybatis框架 的快速入门 MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集...

yxhusmart
2016/11/04
11
0
深入浅出MyBatis-快速入门

深入浅出MyBatis-快速入门 深入浅出MyBatis-Configuration 深入浅出MyBatis-MapperBuilder 深入浅出MyBatis-Sqlsession 深入浅出Mybatis-插件原理 深入浅出Mybatis-分页 深入浅出Mybatis-sql...

perfectspr
2014/11/26
0
1
MyBatis学习笔记系列教程

【MyBatis学习笔记】系列之预备篇一:ant的下载与安装 【MyBatis学习笔记】系列之预备篇二:ant入门示例 【MyBatis学习笔记】系列之一:MyBatis入门示例 【MyBatis学习笔记】系列之二:MyBat...

HenrySun
2016/10/15
19
0

没有更多内容

加载失败,请刷新页面

加载更多

指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

天王盖地虎626
13分钟前
0
0
Qt那些事0.0.18

今天要记一下Qt中的Resource。自我感觉理解的不错,但是还会难免有谬误,在日后有可能会更新,也有可能不会。 小声的念叨一句,女人心,海底针。 今天就直接跳过了关于QML在qrc文件中的介绍,...

Ev4n
21分钟前
0
0
深入解析js的作用域、预解析机制

虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用域及预解析机制。 概念: 作用域:域,指的是一个空间、范围、区域,...

前端攻城老湿
24分钟前
0
0
Spring Cloud Feign - 声明式 REST Client

1、Feign是什么 声明式REST client,来自NetFlix。 允许你编写无实现代码调用REST services 替换RestTemplate(甚至更简单) Spring Cloud 为使用Feign提供了包装器 2、怎样使用Feign 对比:...

Benz001
29分钟前
0
0
前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部