S>_
SqlMan 互动入门
← 返回文档
JDBC · SQLMAN · HANDS-ON

从一条 SQL 开始,学会安全地读写数据库。

用 5 个短练习掌握 SqlMan 最常用的调用链。每一步都先预测,再验证;不用安装数据库,也不必背 API。

01 / 05

先把连接交给 Action

Action 是 SqlMan 的入口。对初学者而言,显式传入 Connection 最清晰:连接的获取与关闭仍由你的应用负责。

第一个查询可运行结构
try (Connection conn = dataSource.getConnection()) { String sql = "SELECT id, name FROM shop_address WHERE stat = ?"; List<Map<String, Object>> rows = new Action(conn, sql).query(1).list(); }
不要把 Connection 藏在全局变量里。SqlMan 也支持线程连接,但在第一段代码里显式传入连接更容易理解和管理。
02 / 05

? 绑定数据,而非拼接 SQL

把值交给 query(...)。SqlMan 会按顺序把它们交给 JDBC 的 PreparedStatement

动手绑定两个参数点击“执行”查看映射
SQL:id = ? AND stat = ?
 
new Action(conn, "SELECT * FROM shop_address WHERE id = ? AND stat = ?")
.query(7, 1).one();
安全规则:值用 ?;表名、列名、排序方向等 SQL 结构无法作为 JDBC 参数绑定,必须由应用代码控制,不能直接信任请求输入。
03 / 05

选择你要的结果形状

同一条查询,可按“单个值 / 一行 Map / 一个 Bean / 多行列表”读取。选择最符合调用方需求的 API。

小测验选择正确的结果 API
目标调用
一个标量oneValue(Long.class)
一行 Mapone()
一个 JavaBeanone(Address.class)
多行list()list(Address.class)
04 / 05

写入:create、update 与 delete

在同一个 Action 上选择操作类型。写入结果会告诉你是否成功以及影响行数;插入时还能读取数据库生成的主键。

组装一条插入调用按正确顺序点击
// 点击上方 ① → ② → ③
execute(true, Long.class) 表示由数据库生成主键,并要求把返回值转换为 Long。更新后可通过 UpdateResult#getEffectedRows() 取得影响行数。
05 / 05

实体模式:从 Map 或 Bean 生成写入 SQL

当字段较多时,可以把 Map 或 JavaBean 与表名交给 Action。SqlMan 会生成 INSERT/UPDATE 所需 SQL 和参数;Bean 可借助 @Table@Id@Column 提供映射信息。

识别操作意图来自项目 H2 单测的调用方式
Map<String, Object> address = Map.of( "name", "Alice", "phone", "110"); new Action(conn, address, "shop_address") .create().execute(true, Integer.class);
完成基础路径

你已经能读懂 SqlMan 的主调用链。

下一步,去文档了解 分页查询批量写入,或在项目测试中观察 H2 的真实行为。