目录
SQL功能类的介绍
- 我们之前通过注解开发时,相关SQL语句都是自己直接拼写的
- 一些关键字写起来比较麻烦,而且容易出错
- Mybatis给我们提供了org.apache.ibatis.jdbc.SQL功能类,专门用于构建SQL语句
public class sql { public static void main(String[] args) { String sql = getSql(); System.out.println(sql); } public static String getSql(){ return new SQL(){ { SELECT("*"); FROM("student"); } }.toString(); } }
查询功能的实现
- 定义功能类并提供获取查询的SQL语句的方法
- @SelectProvider:生成查询用的SQL语句注解
- type属性:生成SQL语句功能类对象
- method属性:指定调用方法
//定义方法,返回查询的sql语句 public String getSelectAll(){ return new SQL(){ { SELECT("*"); FROM("student"); } }.toString(); }
//查询全部 //@Select("SELECT * FROM student") @SelectProvider(type = ReturnSql.class,method = "getSelectAll") public abstract List<Student> selectAll();
新增功能的实现
- 定义功能类并提供获取新增的SQL语句的方法
- @InsertProvider:生成新增用的SQL语句注解
- type属性:生成SQL语句功能类对象
- method属性:指定调用方法
//定义方法,返回新增的sql语句 public String getInsert(Student stu){ return new SQL(){ { INSERT_INTO("student"); INTO_VALUES("#{id},#{name},#{age}"); } }.toString(); }
//新增操作 //@Insert("INSERT INTO student VALUES (#{id},#{name},#{age})") @InsertProvider(type = ReturnSql.class,method = "getInsert") public abstract Integer insert(Student stu);
修改功能的实现
- 定义功能类并提供获取修改的SQL语句的方法
- @UpdateProvider:生成修改用的SQL语句注解
- type属性:生成SQL语句功能类对象
- method属性:指定调用方法
//定义方法,返回修改的sql语句 public String getUpdate(Student stu){ return new SQL(){ { UPDATE("student"); SET("name=#{name}","age=#{age}"); WHERE("id=#{id}"); } }.toString(); }
//修改操作 //@Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}") @UpdateProvider(type = ReturnSql.class,method = "getUpdate") public abstract Integer update(Student stu);
删除功能的实现
- 定义功能类并提供获取删除的SQL语句的方法
- @DeleteProvider:生成删除用的SQL语句注解
- type属性:生成SQL语句功能类对象
- method属性:指定调用方法
//定义方法,返回删除的sql语句 public String getDelete(Integer id){ return new SQL(){ { DELETE_FROM("student"); WHERE("id=#{id}"); } }.toString(); }
//删除操作 //@Delete("DELETE FROM student WHERE id=#{id}") @DeleteProvider(type = ReturnSql.class,method = "getDelete") public abstract Integer delete(Integer id);
本文含有隐藏内容,请 开通VIP 后查看