惠阳网站建设,国外设计师,东莞最新招聘信息,wordpress php 链接1.构建SQL概述
之前通过注解开发时#xff0c;相关 SQL 语句都是自己直接拼写的。一些关键字写起来比较麻烦、而且容易出错。
MyBatis 给我们提供了 org.apache.ibatis.jdbc.SQL 功能类#xff0c;专门用于构建 SQL 语句
方法名说明SELECT(String.column)根据字段拼接查询…1.构建SQL概述
之前通过注解开发时相关 SQL 语句都是自己直接拼写的。一些关键字写起来比较麻烦、而且容易出错。
MyBatis 给我们提供了 org.apache.ibatis.jdbc.SQL 功能类专门用于构建 SQL 语句
方法名说明SELECT(String.column)根据字段拼接查询语句FROM(String…table)根据表名拼接语句WHERE(String…condition)根据条件拼接语句INSERT_INTO(String table)根据表名拼接新增语句VALUES(String column,String values)根据字段和值拼接插入数据语句UPDATE(String table)根据表名拼接修改语句DELETE_FROM(String table)根据表名拼接删除语句… … … …
测试类
package Mybatis4.sql;import org.apache.ibatis.jdbc.SQL;public class SqlTest {public static void main(String[] args) {/* String sql getSql();System.out.println(sql);}//定义方法获取查询student表的sql语句public static String getSql() {String sql SELECT * FROM student;return sql;*/String sql getSql();System.out.println(sql);}public static String getSql() {String sql new SQL(){//通过SQL类提供的方法来实现sql语句的编写{SELECT(*);FROM(student);}}.toString();return sql;}
}2.查询功能的实现
定义功能类并提供获取查询的SQL语句的方法
SelectProvider:生成查询用的SQL语句注解 type属性生成SQL语句功能类对象 method属性指定调用方法
新建功能类ReturnSql
package Mybatis4.sql;import org.apache.ibatis.jdbc.SQL;public class ReturnSql {//定义方法返回查询的sql语句public String getSelectAll() {return new SQL() {{SELECT(*);FROM(student);}}.toString();}
}修改StudentMapper //查询全部//Select(SELECT * FROM student)//注意method只是指定一个方法的名字SelectProvider内部会自己调用SelectProvider(type ReturnSql.class , method getSelectAll)public abstract ListStudent selectAll();
3.新增功能的实现
定义功能类并提供获取新增的SQL语句的方法
InsertProvider:生成新增用的SQL语句注解 type属性生成SQL语句功能类对象 method属性指定调用方法
ReturnSql
//定义方法返回新增的sql语句
public String getInsert(Student stu) {return new SQL() {{INSERT_INTO(student);INTO_VALUES(#{id},#{name},#{age});}}.toString();}
修改StudentMapper
//新增操作: sql的参数与之前的写法一致从insert方法的参数中获取对应属性值//Insert(INSERT INTO student VALUES (#{id},#{name},#{age}))InsertProvider(type ReturnSql.class , method getInsert)public abstract Integer insert(Student stu);
4.修改功能的实现
定义功能类并提供获取修改的SQL语句的方法
UpdateProvider:生成修改用的SQL语句注解 type属性生成SQL语句功能类对象 method属性指定调用方法
ReturnSql //定义方法返回修改的sql语句public String getUpdate(Student stu) {return new SQL() {{UPDATE(student);SET(name#{name},age#{age});WHERE(id#{id});}}.toString();}修改StudentMapper
//修改操作//Update(UPDATE student SET name#{name},age#{age} WHERE id#{id})UpdateProvider(type ReturnSql.class , method getUpdate)public abstract Integer update(Student stu);
5.删除功能的实现
定义功能类并提供获取删除的SQL语句的方法
DeleteProvider:生成删除用的SQL语句注解 type属性生成SQL语句功能类对象 method属性指定调用方法
ReturnSql
//定义方法返回删除的sql语句
public String getDelete(Integer id) {return new SQL() {{DELETE_FROM(student);WHERE(id#{id});}}.toString();
}修改StudentMapper
//删除操作//Delete(DELETE FROM student WHERE id#{id})DeleteProvider(type ReturnSql.class , method getDelete)public abstract Integer delete(Integer id);