一、Mybatis是什么
在学习Mybatis之前,先了解一下,什么是框架?
通俗一点来说,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。就是使用别
人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
而我们的Mybatis就是一个基于Java的持久层框架。
二、为什么要使用Mybatis
其实在这之前,我们肯定已经学习过很多的持久层技术解决方案,如:
JDBC技术、Spring的JdbcTemplate、Apache的DBUtils
但是JDBC技术开发起来太麻烦了,很多繁琐的细节都需要自己做;
Spring的JdbcTemplate、Apache的DBUtils都只是工具类,封装的不够完美。
因此封装的更完美的Mybatis框架就受到欢迎了。
简而言之,Mybatis框架封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程;而且它使用了ORM思想实现了结果集的封装。
三、Mybatis的快速入门案例
(一)需求
下面就通过一个简单的案例来快速上手Mybatis。
需求:名为mybatis数据库中有一张user表,现使用Mybatis框架实现查询该user表中所有用户信息。
(二)数据库
user表的结构如下:
user表中数据如下:
(三)需求实现
步骤大致如下:
1、创建一个Maven项目,并引入相关依赖的坐标
1 | <dependencies> |
2、编写与user表相对应的JavaBean类,创建Dao接口(也可以叫做Mapper)
JavaBean的创建非常简单,故省略;Dao接口如下:
1 | public interface IUserDao { |
注意:该案例中没有将JavaBean对象和user表做映射操作,所以要求JavaBean类中的属性名必须和user表中的列名相对应。
3、编写Dao的配置文件(IUserDao.xml)
1 |
|
注:Mybatis的映射配置文件(即:IUserDao.xml)位置必须和dao接口的包结构相同,如:
4、编写Mybatis的主配置文件(SqlMapConfig.xml)
1 |
|
5、进行测试
1 | public class MybatisTest { |
测试结果如下:
目前需求就已经实现啦!
(四)注意
观察仔细的小伙伴可能已经发现了,我们并没有实现IUserDao接口。
确实是的,我们在实际开发中一般不会使用实现接口的方式,在实际开发中更多的是考虑开发的时间成本,没有必要通过实现接口的方式来完成需求。但是,这并不代表Mybatis不支持实现Dao接口(实现接口的案例在此处)。
我们使用的是不实现Dao接口的方式,因此需要遵守下列3个规范:
a. mybatis的映射配置文件位置必须和dao接口的包结构相同(前面已经提到过)
b. 映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
c. 映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名
四、详细分析
下面针对测试测试类中的核心代码进行分析:
1 | /*Mybatis提供的用来加载配置稳健的类*/ |
1 | /*使用了构建者模式:把对象的创建细节隐藏,让使用者直接调用方法即可创建对象*/ |
1 | /*使用了工厂设计模式:有利于降低类之间的依赖关系,从而达到解耦的目的*/ |
1 | /*使用了代理设计模式:在不修改源码的基础上对已有方法进行增强,此处其实就是我们可以不用实现Dao接口就可以执行方法,从而达到增强的效果*/ |
Java新手,若有错误,欢迎指正!