开始准备生成sql
在上一篇里,我们已经取到了我们在生成sql语句中所需要的信息,这一篇里我们开始根据class来生成我们需要的sql。在这之前我们先确认几件事情
-
sql里的参数我们使用占位符的形式。
这里用的是jdbc中的PreparedStatement,sql中的参数使用“?”的形式。
大致上是这样的:
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("select * from `user` where `status` = ? ;");
preparedStatement.setObject(1, 0);
ResultSet resultSet = preparedStatement.executeQuery();但是这样的话我们每次执行都需要手写这些执行sql的繁琐的代码,我在这里选择使用spring-jdbc中的JdbcTemplte。这样我就只需要生成sql,然后使用JdbcTemplte里的方法来执行sql就好了。
我们只生成单表的增删改查,不涉及复杂sql。
-
不贴出完整的代码,以说明思路为主。
毕竟这个是已经写好的代码,地址在:https://github.com/hjx601496320/JdbcPlus 。所有代码可以在这里找到。
分析sql
我们主要解决的是增删该查的问题,所以我们先写如何生成一个新增的sql。
我么先观察一下sql一般来说都有什么构成。现在先放一个例子出来:
-
insert
INSERT INTO user (name, id, create_date, age, mark, status)
VALUES (?, ?, ?, ?, ?, ?); -
delete
DELETE
FROM user
WHERE id = ? -
update
UPDATE user
SET name = ?,
id = ?,
create_date = ?,
age = ?,
status = ?
WHERE id = ? -
select
SELECT name, id, create_date, age, mark, status
FROM user
WHERE id = ?
通过观察上面的sql,可以发现其中有一些共性:
- 都有表的名称。
- 基本上都包含表中的字段名称。
- 还有参数。
- 以上都是废话