mybatis系列-sql 类的简单使用

mybatis 还有个比较有趣的功能,就是使用 SQL 类生成 sql,有点类似于 hibernate 或者像 php 的 laravel 框架等的,就是把sql 这种放在 xml 里或者代码里直接写 sql 用对象的形式

select语句

比如这样

public static void main(String[] args) {
    String selectSql = new SQL() {{
        SELECT("id", "name");
        FROM("student");
        WHERE("id = #{id}");
    }}.toString();
    System.out.println(selectSql);
}

打印出来就是

SELECT id, name
FROM student
WHERE (id = #{id})

应付简单的 sql 查询基本都可以这么解决,如果习惯这种模式,还是不错的,
其实以面向对象的编程模式来说,这样是比较符合面向对象的,先不深入的解析这块的源码,先从使用角度讲一下

比如 update 语句

String updateSql = new SQL() {{
            UPDATE("student");
            SET("name = #{name}");
            WHERE("id = #{id}");
        }}.toString();

打印输出就是

UPDATE student
SET name = #{name}
WHERE (id = #{id})

insert 语句

String insertSql = new SQL() {{
            INSERT_INTO("student");
            VALUES("name", "#{name}");
            VALUES("age", "#{age}");
        }}.toString();
        System.out.println(insertSql);

打印输出

INSERT INTO student
 (name, age)
VALUES (#{name}, #{age})

delete语句

String deleteSql = new SQL() {{
            DELETE_FROM("student");
            WHERE("id = #{id}");
        }}.toString();
        System.out.println(deleteSql);

打印输出

DELETE FROM student
WHERE (id = #{id})