Mybatis——框架概述,作用,注意问题

简介

  • 学过java的人应该都知道框架一词,框架是什么?即软件开发的半成品,主要用来简化开发,提高开发的效率。框架这个东西,剖析到最后,还是基础的servlet,jdbc等等。
  • mybatis是Apache软件基金会下的一个开源项目,前身是Ibatis框架。2010年这个项目由apache 软件基金会迁移到google code下,改名为mybatis。2013年11月又迁移到github(https://github.com/mybatis/mybatis-3/releases)。
  • mybatis是一个持久层的框架,是对JDBC操作数据库的封装,使开发者只需要关注业务本身,不需要花费精力去处理加载驱动、创建数据库连接对象、创建statement语句对象、参数设置、结果集处理等一系列繁杂的过程代码。

为什么会有Mybatis框架

  • 说白了,Mybatis框架就是对JDBC的代码的简化,Mybatis是一个半ORM(Object relational mapping)的框架,可以代替JDBC与数据库进行交互,完成数据的持久化操作,最终的目的还是简化开发。

Mybatis作用

  • mybatis通过xml或注解进行配置,将java对象与sql语句中的参数自动映射生成最终执行的sql语句,并将sql语句执行结果自动映射成java对象,返回给业务层(service)应用。

Mybatis框架原理

Mybatis与JDBC对比

  • 说到Mybatis的好处,我们首先得拿出东西跟它进行对比,这个地方就拿JDBC来进行对比了。
JDBC的问题:
  • ①每次跟数据库都需要获取数据库链接(手写JDBC的六大步骤
  • ②sql语句写在代码里面,表结构修改了,sql语句也要进行修改
  • ③?占位符赋值的时候都需要考虑数据的位置和类型
  • ④处理结果集 获取从数据库查询出的数据的时候也要考虑数据的位置和类型
Mybatis的好处:
  • ①Mybatis在配置文件中提供了一个内置的数据库连接池,能更加方便的获取数据库连接,只需要配置一次即可。
  • ②通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • ③提供XML标签,支持编写动态sql
  • ④Mybatis相对于JDBC有个劣势,就是JDBC可以打断点的方式进行调试,而Mybatis只能用log4j日志进行调试。
  • ⑤sql语句写在xml文件里面,便于统一进行管理

Mybatis中#{}占位符和${}字符串拼接符的区别

①占位符#{},相当于jdbc中的问号?,当参数类型传递的是java简单类型的时候,花括号中的内容可以是任意字符串。
②字符串拼接符${},当参数传递的是java简单类型的时候,花括号中的内容只能是:value
③sql语句中使用字符串拼接,可能引起sql注入的问题。

mybatis与hibernate的比较

相同点

  • 都是对jdbc的封装,都是持久层的框架,都用于dao层的开发。

不同点

  • hibernate对sql语句做了封装,提供了HQL语句操作数据库,数据库无关性支持好,在项目需要支持多种数据库的情况下,代码开发量较少,sql语句优化困难。mybaits是直接使用sql语句操作数据库,不支持数据库无关性,在项目需要支持多种数据库的情况下,代码开发量较多,sql语句优化容易。
  • hibernate配置java对象与数据库表的对应关系,多表关联关系配置复杂。mybatis是配置java对象与sql语句的对应关系,多表关联关系配置简单。
  • hibernate是一个重量级的框架,学习使用门槛高,适合于需求相对稳定,中小型的项目,比如:办公自动化系统(OA)。mybatis是一个轻量级的框架,学习使用门槛低,适合于需求变化频繁,大型的项目,比如:互联网项目。目前企业项目中,mybatis框架使用更多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值