public User getUser(Long id) { try (Sessionsession= sessionFactory.openSession()) { return session.queryForObject("SELECT * FROM users WHERE id = ?", User.class, id); } } }
public CompletableFuture<User> getUser(Long id) { return r2dbcTemplate.queryOne("SELECT * FROM users WHERE id = $1", User.class, id); }
public CompletableFuture<List<User>> getAllUsers() { return r2dbcTemplate.queryList("SELECT * FROM users", User.class); }
public CompletableFuture<Integer> updateUser(Long id, String name) { return r2dbcTemplate.update("UPDATE users SET name = $1 WHERE id = $2", name, id); }
public CompletableFuture<Long> createUser(String name) { return r2dbcTemplate.insertWithKey("INSERT INTO users (name) VALUES ($1)", Long.class, name); }
public CompletableFuture<int[]> batchUpdateNames(List<Object[]> params) { return r2dbcTemplate.batch("UPDATE users SET name = $1 WHERE id = $2", params); } }
API 对比
jrdb-jdbc API
方法
返回值
说明
query(sql, params)
QueryResult
Raw API,返回堆外内存结果
queryForObject(sql, entityClass, params)
<T> T
ASM API,返回单个实体
queryForList(sql, entityClass, params)
<T> List<T>
ASM API,返回实体列表
queryWithHandler(sql, handler, params)
void
Streaming API,流式处理
insert(sql, keyType, params)
<T> T
插入返回主键
update(sql, params)
int
更新返回影响行数
delete(sql, params)
int
删除返回影响行数
jrdb-r2dbc API
方法
返回值
说明
queryOne(sql, typeClass, params)
CompletableFuture<T>
查询单个值
queryList(sql, typeClass, params)
CompletableFuture<List<T>>
查询列表
queryOne(sql, mapper, params)
CompletableFuture<T>
自定义映射查询单个
queryList(sql, mapper, params)
CompletableFuture<List<T>>
自定义映射查询列表
update(sql, params)
CompletableFuture<Integer>
更新
insert(sql, params)
CompletableFuture<Boolean>
插入
insertWithKey(sql, keyType, params)
CompletableFuture<T>
插入返回主键
delete(sql, params)
CompletableFuture<Integer>
删除
batch(sql, paramsList)
CompletableFuture<int[]>
批量操作
构建 & 测试
# 编译 mvn clean compile
# 运行所有测试 mvn test
# 运行指定模块测试 mvn test -pl jrdb-jdbc mvn test -pl jrdb-r2dbc