在没有接触mybatis之前我都是用springmvc+jdbc做的数据库操作,接触mybatis之后对数据库的操作变得简单了很多,并且项目层次更加清晰,废话不多说 直接上代码,springboot搭建我就不说了,不了解的直接跳转:IntelliJ IDEA搭建SpringBoot
注解说明:下面例子中会用到一些注解,在此统一说明下
@Mapper: DAO 接口类的注解,所有接口直接调用mybatis.xml,下面有讲解
@Data: DO 数据模型注解, mybatis查询后可直接放回数据模型,也可在查询时传入
@Param: mapper传入参数(DAO中使用)
配置说明
在resource下创建mybatis文件夹,mybatis文件夹中包含mapper文件夹(此文件夹中是所有业务的CRUD) 和 mybatis-config.xml
然后就是在application配置文件中增加配置项,我使用的是.yml配置,配置如下:
最后在pom中增加依赖
到此为止已经配置完毕,可以开始coding了
下面写几个简单的例子分别讲一下不同情况时如何使用
dao层定义接口
创建DO数据模型
在mapper文件夹中创建UserMapper.xml文件
其中namespace 是 DAO接口类的路径
resultMap:定义查询数据后的返回, type指定DO数据模型, result是映射关系,数据字段映射到DO字段.
sql:定义的查询字段集
在UserMapper.xml中添加插入配置
insert 代表插入, 其余的还有 update,select,delete
id: 对应DAO中的接口名称, 向上翻看是否与 dao层定义接口 名称相同
#{param}固定写法
此时一条用户注册数据插入就实现了.
除了普通数据插入也直接在DAO层直接传入DO数据模型,但必须要在mybatis-config.xml文件中配置
除了基本数据类型的配置 也可以配置DO数据模型,配置好后我们继续
将上述DAO接口参数改为 User user后UserMapper.xml 对应的#{phone}等就可以改成user.phone
当插入数据量较大时建议先创建DO数据模型, 然后在进行插入查处 后期也方便维护.
查询数据
以查询用户为例
mapper.xml如下
resultMap指定查询的结果以map方式返回,UserResultMap在上面有配置,所有返回的结果可以直接用UserDO接收,DAO定义如下
以上就是大致的用法的了,delete,update操作就不讲了.下面将一下在mybatis中如何使用if 和when进行条件查询
如上图中 使用到了两个条件语句 <if> 和 <choose>, 其中<if>为单条件判断,mybatis中没有 if else语法 取而代之的是 <choose>语法.
场景: 根据多个用户id查询用户列表
此处用到了<foreach>语句, 其中collection是DAO中传入的 List<String> userIds,也可以传入String[] userIds.
到此mybatis就差不多了, 我也是第一次分享, 有不足的大家见谅哈
by:张鼎辉