案例 完成品牌数据的增删改查操作
- 要完成的功能列表清单:
- 查询所有数据
- 查看详情
- 条件查询
- 添加
- 修改
- 修改全部字段
- 修改动态字段
- 删除
- 删除一个
- 批量删除
准备环境
- 数据库表 tb_brand
- 实体类 Brand
- 测试用例
- 安装 MyBatisX 插件
MyBatisX 插件
- MyBatisX是一款基于 IDEA 的快速 开发插件,为效率而生。
- 主要功能:
- XML 和接口方法 相互跳转
- 根据 接口方法生成 statement
- 安装
查询所有数据
-
编写接口方法: Mapper 接口
- 参数:无
- 结果: List< Brand >
-
编写 SQL 语句:SQL映射文件:
-
执行方法,测试
-
总结
- MyBatis 完成 操作需要几步?
三步:编写接口方法 -->编写 SQL -->执行方法 - 实体类属性名 和数据库列表名不一致,不能自动封装数据
- 起别名:在 sql 语句中,对不一样的列名起别名,别名和实体类属性名一样,可以定义 < sql >片段,提高复用性
- resultMap :定义 < resultMap >完成不一致的属性名和列名的映射
- MyBatis 完成 操作需要几步?
查看详情
-
编写接口方法:Mapper 接口
- 参数:id
- 结果:Brand
-
编写 SQL 语句:SQL映射文件
-
执行方法,测试
-
总结
- 参数占位符
- #{}:执行 SQL时,会将 #{} 占位符 替换为?,将来自动设置参数值
- ${}:拼 SQL,会存在 SQL注入问题
- 参数占位符
-
使用时机
- 参数传递,都使用 #{}
- 如果要对表名、列名进行动态设置,只能使用 ${}进行 sql 拼接
-
parameterType:
- 用于设置参数类型,该参数可以省略
-
SQL 语句中特殊字符处理
- 转义字符
- <![CDATA[内容]]>:CD提示
条件查询
-
编写接口方法: Mapper 接口
- 参数:所有查询条件
- 结果:List< Brand >
-
编写 SQL语句:SQL映射文件
-
执行方法,测试
-
总结
- SQL 语句设置多个参数有几种方式?
- 散装参数:需要使用 @Param(“SQL中参数的名称”)
- 实体类封装参数:只需要保证 SQL中的参数名 和 实体类属性名对应上,即可设置成功
- map集合 :只需要保证 SQL中的参数名 和 map 集合的键的名称对应上,即可设置成功
- SQL 语句设置多个参数有几种方式?
-
思考:用户输入条件时,是否所有的条件都会填写?
多条件查询-动态条件
-
SQL 语句会随着用户的输入或外部条件的变化而变化,我们称为动态SQL
-
MyBatis对动态 SQL有很大的支撑
-
动态 SQL