100 lines
2.8 KiB
Markdown
100 lines
2.8 KiB
Markdown
# DB数据源
|
||
|
||
## 配置数据源
|
||
```properties
|
||
redkale.datasource.platf.url = jdbc:mysql://127.0.0.1:3306/platf?serverTimezone=UTC&characterEncoding=utf8
|
||
redkale.datasource.platf.user = root
|
||
redkale.datasource.platf.password = pwd123
|
||
```
|
||
|
||
## 增删改
|
||
```java
|
||
@Data
|
||
public class Account {
|
||
//男
|
||
public static final short GENDER_MALE = 1;
|
||
|
||
//女
|
||
public static final short GENDER_FEMALE = 2;
|
||
|
||
@Id
|
||
@Column(name = "account_id")
|
||
private String accountid;
|
||
|
||
@Column(name = "account_name")
|
||
private String accountName;
|
||
|
||
private int age;
|
||
|
||
private short gender;
|
||
|
||
private String remark;
|
||
|
||
@Column(name = "create_time", updatable = false)
|
||
private long createTime;
|
||
}
|
||
```
|
||
|
||
  新增实体对象:
|
||
```java
|
||
//新增单个
|
||
Account account = new Account();
|
||
account.setAccountid("account1");
|
||
account.setAccountName("Hello");
|
||
account.setCreateTime(System.currentTimeMillis());
|
||
source.insert(account);
|
||
|
||
//异步新增多个
|
||
Account a1 = new Account();
|
||
a1.setAccountid("account1");
|
||
a1.setAccountName("Hello1");
|
||
a1.setCreateTime(System.currentTimeMillis());
|
||
Account a2 = new Account();
|
||
a2.setAccountid("account2");
|
||
a2.setAccountName("Hello2");
|
||
a2.setCreateTime(System.currentTimeMillis());
|
||
source.insertAsync(a1, a2);
|
||
```
|
||
|
||
  修改实体对象:
|
||
```java
|
||
//更新单个字段
|
||
source.updateColumn(Account.class, "account1", Account::getRemark, "新备注");
|
||
|
||
//更新多个字段
|
||
source.updateColumn(Account.class, "account1",
|
||
ColumnValue.set(Account::getAccountName, "新名称"),
|
||
ColumnValue.set(Account::getRemark, "新备注"),
|
||
ColumnValue.inc(Account::getAge, 2)); //年龄+2
|
||
|
||
//更新多个字段
|
||
Account account = new Account();
|
||
account.setAccountid("account1");
|
||
account.setAccountName("新名称");
|
||
account.setRemark("新备注");
|
||
source.updateColumn(account, "accountName", "remark");
|
||
//或者
|
||
source.updateColumn(account, Account::getAccountName, Account::getRemark);
|
||
|
||
//更新整个对象
|
||
Account one = new Account();
|
||
one.setAccountid("account1");
|
||
one.setAccountName("Hello1");
|
||
one.setCreateTime(System.currentTimeMillis());
|
||
source.update(one); //createTime不会被更新,因字段设置了@Column(updatable=false)
|
||
|
||
//过滤更新
|
||
source.updateColumn(Account.class, FilterNodes.lt(Account::getAge, 16),
|
||
ColumnValue.set(Account::getRemark, "不满16岁是青少年"));
|
||
```
|
||
|
||
  删除实体:
|
||
```java
|
||
//根据主键值删除
|
||
Account account = new Account();
|
||
account.setAccountid("account1");
|
||
source.delete(account);
|
||
|
||
//过滤删除, 删除16以下男生
|
||
source.delete(Account.class, FilterNodes.lt(Account::getAge, 16).and("gender", GENDER_MALE));
|
||
``` |