跳到主要内容

5.3 构造器 API

LambdaTemplate 是 dbVisitor 的构造器 API 核心类,通过编程方式构建 SQL 语句,自动处理数据库方言差异。

先选模式​

模式是否需要对象映射适合场景
Entity 模式需要有实体类,使用 User::getName 这类方法引用操作列。
映射 Map 模式需要有表映射,但数据载体是 Map。
自由 Map 模式不需要没有实体类或不想维护映射,直接使用表名和列名。

Entity 模式和 映射 Map 模式 使用前需要为数据库表建立 对象映射。自由 Map 模式 不需要实体映射。

实体类映射
@Table("users")
public class User {
@Column(value = "id", primary = true, keyType = KeyType.Auto)
private Long id;
@Column("name")
private String name;

public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
创建和使用
LambdaTemplate lambda = new LambdaTemplate(dataSource);

// 查询示例
List<User> users = lambda.query(User.class)
.eq(User::getName, "alice")
.queryForList();
提示

LambdaTemplate 的获取方式取决于项目架构,详见 框架整合。

原理​

通过 insert、update、delete、query、freedom 系列方法构建操作,开发者以编程方式描述 SQL 逻辑,运行时自动生成对应方言的 SQL 并通过 JdbcTemplate 执行。

使用指引​

写入操作​

更新和删除默认拒绝空条件;需要操作全部记录时,显式调用 allowEmptyWhere()。写入后的返回值与回读行为见各数据源的构造器 API 差异。