跳到主要内容

1.3 五分钟上手

以下示例在 Spring Boot 和 Solon 下完全一致。

创建数据表

CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`is_deleted` tinyint DEFAULT 0,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);

INSERT INTO user (name, age, email) VALUES
('张三', 25, 'zhangsan@example.com'),
('李四', 30, 'lisi@example.com'),
('王五', 28, 'wangwu@example.com');

创建实体类

@Data
@TableName("user")
public class User {
private Long id;
private String name;
private Integer age;
private String email;
private Integer isDeleted;
private Date createTime;
}

开始使用

查询

// 单条查询
User user = DB.Pojo.select(User.class).eq(User::getId, 1).queryBean();

// 条件查询
List<User> users = DB.Pojo.select(User.class)
.like(name != null, User::getName, name)
.orderByDesc(User::getCreateTime)
.queryBeanList();

// 分页查询
Page<User> page = DB.Pojo.select(User.class)
.like(name != null, User::getName, name)
.page(pageNum, pageSize)
.queryBeanPage();

新增

User user = new User();
user.setName("张三");
DB.Pojo.insert(user); // 自动回填主键
Long id = user.getId();

更新

// 方式1:自动更新所有非ID字段(推荐)
DB.Pojo.update(user).eq(User::getId, user.getId()).execute();
// 注意:update(user) 会自动设置 user 对象中所有非null且非ID的字段

// 方式2:手动指定要更新的字段
DB.Pojo.update(User.class)
.set(User::getName, "新名字")
.set(User::getAge, 26)
.eq(User::getId, id)
.execute();

删除

DB.Pojo.delete(User.class).eq(User::getId, id).execute();

查看日志

[SQL] SELECT * FROM user WHERE id = 1 AND is_deleted = 0
[耗时] 12ms
[调用] caller:UserController.java:15