MyBatis快速入门(01)JDBC回顾

什么是 MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

 

 

 

MyBatis中文官方文档地址

http://www.mybatis.org/mybatis-3/zh/index.html

 

 

JDBC回顾

相信很多人都听过和用过mybatis,mybatis的底层是jdbc,所以学习mybatis之前我们先来回顾一下jdbc的用法。操作数据库首先需要有一个数据库,为了简单,我们使用sqlite数据库。先来看一下依赖:

为了方便,我们将数据库建在项目目录下面,新建一个db文件:

新建文件的时候,可以直接新建一个文本文档,然后修改名字为test.db即可,然后用Navicat打开,就是一个sqlite数据库:

新建一个t_user表,表结构如下:

这样数据库就准备好了,sqlite是非常方便的数据库。在Java中新建几个常量,作为连接数据的参数:

注意用户名密码直接写空字符串即可。然后写一个公共方法获取数据库连接:

上面有两步,加载驱动,连接数据库,最后返回一个连接。下面写一个新增方法,首先定义一个sql:

然后定义新增方法:

下面定义一个查询方法,首先定义查询sql:

然后定义查询方法:

上面都是很简单的我们熟悉的jdbc的写法,也是java的基础。我们来执行看一下结果:

结果:

数据库中也添加成功了一条记录:

 

 

 

 

JDBC的缺点

我们亲自回顾了一次jdbc,用jdbc操作数据库虽然是基础,但是实际开发当中几乎没人用jdbc,是因为直接使用jdbc存在以下缺点:

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

2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

3、 向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。

4、使用对象传入参数和把返回结果封装成对象都需要自己手动硬编码

正因为以上的问题,所以我们在项目中通俗的做法是使用开源的稳定的orm框架,比如hibernate和mybatis。hibernate对jdbc进行了非常严格的封装,使用不太灵活,性能方面也不如mybatis。因此mybatis成为了现在互联网项目的一般标准用法。

我们下面将会一步步学习mybatis的用法,然后对mybatis的源码进行分析,看mybatis如何对jdbc进行封装,最后我们来徒手写一个简单版的mybatis,来体会一下自己写框架的快感!

 

代码地址:https://gitee.com/blueses/mybatis-demo  01

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页