一、SQL构建对象介绍
- 我们之前通过注解开发时,相关SQL语句都是自己拼血的,一些关键字写起来比较麻烦,而且容易出错。
- MyBatis给我们提供了org.apache.ibatis.jdbc.SQL功能类,专门用于构建SQL语句。
![](https://img-blog.csdnimg.cn/b24c36f2856b4caeaee6568954efe6b7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rab5rab5ZKM5LiJ54yr,size_20,color_FFFFFF,t_70,g_se,x_16)
1、查询操作
- 定义功能类并提供获取SQL语句的方法。
- @SelectProvider:生成查询用的SQL语句注解。
- type属性:生成SQL语句功能类对象
- method属性:指定调用方法
2、新增操作
- 定义功能类并提供获取SQL语句的方法。
- @InsertProvider:生成查询用的SQL语句注解。
- type属性:生成SQL语句功能类对象
- method属性:指定调用方法
package com.itheima.sql;
import com.itheima.bean.Student;
import org.apache.ibatis.jdbc.SQL;
public class ReturnSql {
// 定义方法,返回查询的sql语句
public String getSelectAll(){
String sql = new SQL(){
{
SELECT("*");
FROM("student");
}
}.toString();
return sql;
}
// 定义方法,返回新增的sql语句
public String getInsert(Student student){
return new SQL(){
{
INSERT_INTO("student");
INTO_VALUES("#{id}, #{name}, #{age}");
}
}.toString();
}
// 定义方法,返回修改的sql语句
public String getUpdate(Student student){
return new SQL(){
{
UPDATE("student");
SET("name=#{name}", "age=#{age}");
WHERE("id=#{id}");
}
}.toString();
}
// 定义方法,返回删除的sql语句
public String getDelete(Integer id){
return new SQL(){
{
DELETE_FROM("student");
WHERE("id=#{id}");
}
}.toString();
}
}