JavaWeb MyBatis
MyBatis 简介
概述
一款优秀的持久层框架,用于简化 JDBC 的开发
持久层
负责数据保存到数据库
JaveEE 三层框架
表现层
业务层
持久层
优点
将 JDBC 中注册驱动、获取连接和 SQL 语句进行封装
简化获取参数和获得结果集的工作
快速入门
创建 User 表,添加数据
创建模块,导入坐标
编写 MyBatis 核心配置文件 → 替换连接信息,解决硬编码问题
编写 SQL 映射文件 → 统一管理 sql 语句,解决硬编码问题
编码
定义 POJO 类
加载核心配置文件,获取 SqlSessionFactory 对象
获取 SqlSession 对象,执行 SQL 语句
释放资源
Mapper 代理
步骤
定义与 SQL 映射文件同名的 Mapper 接口,并且将 Mapper 接口和 SQL 映射文件放置在同一目录下
创建同名文件夹即可
resources 文件下创建文件夹:com/lawd/mapper(与 java 中不同:com.lawd.mapper)
设置 SQL 映射文件的 namespace 属性为 Mapper 接口全限定名
在 Mapper 接口中定义方法,方法名就是 SQL 映射文件中 sql 语句的 id,并保持参数类型和返回值类型一致
编码
通过 SqlSession 的 getMapper 方法获取 Mapper 接口的代理对象
调用对应方法完成 sql 的执行
配置文件及增删改查
配置文件
environments:配置数据库连接环境信息,可以配置多个 environment,通过 default 属性切换不同的 environment
配置文件增删改查
查询
查询所有数据
编写接口方法:Mapper 接口
编写 SQL 语句:SQL 映射文件
数据库字段名和实体类名不一致时的解决方法
执行方法,测试
查看详情
根据 id 查询
条件查询
多条件查询
多条件动态查询
动态 SQL mybatis – MyBatis 3 | 动态 SQL
单条件动态查询
添加
修改
修改全部字段
修改动态字段
删除
删除一个
批量删除
参数传递
MyBatis 接口方法中可以接收各种各样的参数,MyBatis 提供了 ParamNameResolver 类来进行参数封装
单个参数
POJO 类型
直接使用,属性名 和 参数占位符名称一致
Map 集合
直接使用,键名 和 参数占位符名称一致
Collection
封装为 Map 集合,使用 @Param 注解来设置参数名称
List
封装为 Map 集合,使用 @Param 注解来设置参数名称
Array
封装为 Map 集合,使用 @Param 注解来设置参数名称
其他类型
直接使用
多个参数
封装为 Map 集合,可以使用 @Param 注解来设置参数名称,替换 Map 集合中默认的 arg 键名
默认
注解
使用注解比使用配置文件更加方便
查询:@Select
添加:@Insert
修改:@Update
删除:@Delete
注:简单的语句可以用注解完成,复杂的语句用 xml 映射
版权声明: 本文为 InfoQ 作者【Emperor_LawD】的原创文章。
原文链接:【http://xie.infoq.cn/article/7d012b7066e8ea6bd1ba2c9e4】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论