系列一、MyBatis简介

一、JDBC存在的问题

(1)频繁地创建、释放数据库连接造成系统资源浪费从而影响性能,如果使用数据库连接池可以解决此问题;

(2)SQL语句在代码中硬编码,造成代码维护不易,实际应用中sql的变化可能较大,sql变动需要修改Java代码;

(3)使用preparedStatement占位符传递参数存在硬编码问题,因为sql语句的where条件不一定,可多可少,修改sql还要修改代码,系统不易维护;

(4)对结果集解析存在硬编码,sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象,解析比较方便;

        上面的问题,可以借助于第三方工具如DBUtils或者Spring中自带的数据库操作框架JdbcTemplate,都可以在一定程度上解决该问题。但是不完美,真正能解决这些问题的框架就是两大类,一类是MyBatis、一类是JPA。

二、MyBatis

2.1、概述

        MyBatis由iBatis演变而来,iBatis本是apache的一个开源项目,2010年这个项目由apache software foundation对iBatis做了改进后迁移到了google code,并且改名为MyBatis。MyBatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行了封装,开发者只需要关注sql本身,而不需要花费精力去处理例如注册驱动、创建连接、创建statement、手动设置参数、结果集检索等繁杂的过程代码。MyBatis通过xml或者注解的方式将要执行的各种statement(statement,preparedStatement,CallableStatement)配置起来,并通过Java对象和statement中的sql进行映射生成最终要执行的sql语句,最后由mybatis框架执行sql并将结果映射成Java对象并返回。与其他的关系映射框架不同,MyBatis没有将Java对象与数据库表关联起来,而是将Java方法与sql语句关联,MyBatis允许用户充分利用数据库的各种功能,例如存储过程、视图、各种复杂的查询以及数据库专有的特性。如果要对遗留数据库,不规范的数据库进行操作,或者要完全控制sql的执行,MyBatis是一个不错的选择。

2.2、官网

https://mybatis.org/mybatis-3/zh/index.html

你可能感兴趣的:(MyBatis系列,mybatis)