doc
This commit is contained in:
@@ -61,9 +61,10 @@ redkale.datasource.platf.password = pwd123
|
|||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
## 增删改
|
## 增删改查
|
||||||
```java
|
```java
|
||||||
@Data
|
@Data
|
||||||
|
@Table(name = "t_account")
|
||||||
public class Account {
|
public class Account {
|
||||||
//男
|
//男
|
||||||
public static final short GENDER_MALE = 1;
|
public static final short GENDER_MALE = 1;
|
||||||
@@ -115,12 +116,25 @@ public class Account {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
  删除实体:
|
||||||
|
```java
|
||||||
|
//根据主键值删除
|
||||||
|
Account account = new Account();
|
||||||
|
account.setAccountid("account1");
|
||||||
|
source.delete(account);
|
||||||
|
|
||||||
|
//过滤删除, 删除16以下男生
|
||||||
|
//等价sql: DELETE FROM t_account WHERE age < 16 AND gender = 1;
|
||||||
|
source.delete(Account.class, FilterNodes.lt(Account::getAge, 16).and("gender", GENDER_MALE));
|
||||||
|
```
|
||||||
|
|
||||||
  修改实体对象:
|
  修改实体对象:
|
||||||
```java
|
```java
|
||||||
//更新单个字段
|
//更新单个字段
|
||||||
source.updateColumn(Account.class, "account1", Account::getRemark, "新备注");
|
source.updateColumn(Account.class, "account1", Account::getRemark, "新备注");
|
||||||
|
|
||||||
//更新多个字段
|
//更新多个字段
|
||||||
|
//等价sql: UPDATE t_account SET account_name='新名称', remark='新备注', age=age+2 WHERE account_id='account1';
|
||||||
source.updateColumn(Account.class, "account1",
|
source.updateColumn(Account.class, "account1",
|
||||||
ColumnValue.set(Account::getAccountName, "新名称"),
|
ColumnValue.set(Account::getAccountName, "新名称"),
|
||||||
ColumnValue.set(Account::getRemark, "新备注"),
|
ColumnValue.set(Account::getRemark, "新备注"),
|
||||||
@@ -133,6 +147,7 @@ public class Account {
|
|||||||
account.setRemark("新备注");
|
account.setRemark("新备注");
|
||||||
source.updateColumn(account, "accountName", "remark");
|
source.updateColumn(account, "accountName", "remark");
|
||||||
//或者
|
//或者
|
||||||
|
//等价sql: UPDATE t_account SET account_name='新名称', remark='新备注' WHERE account_id='account1';
|
||||||
source.updateColumn(account, Account::getAccountName, Account::getRemark);
|
source.updateColumn(account, Account::getAccountName, Account::getRemark);
|
||||||
|
|
||||||
//更新整个对象
|
//更新整个对象
|
||||||
@@ -143,17 +158,28 @@ public class Account {
|
|||||||
source.update(one); //createTime不会被更新,因字段设置了@Column(updatable=false)
|
source.update(one); //createTime不会被更新,因字段设置了@Column(updatable=false)
|
||||||
|
|
||||||
//过滤更新
|
//过滤更新
|
||||||
|
//等价sql: UPDATE t_account SET remark = '不满16岁是青少年' WHERE age < 16;
|
||||||
source.updateColumn(Account.class, FilterNodes.lt(Account::getAge, 16),
|
source.updateColumn(Account.class, FilterNodes.lt(Account::getAge, 16),
|
||||||
ColumnValue.set(Account::getRemark, "不满16岁是青少年"));
|
ColumnValue.set(Account::getRemark, "不满16岁是青少年"));
|
||||||
```
|
```
|
||||||
|
|
||||||
  删除实体:
|
  批量操作:
|
||||||
|
```java
|
||||||
|
Account a1 = new Account();
|
||||||
|
a1.setAccountid("account1");
|
||||||
|
a1.setAccountName("Hello1");
|
||||||
|
a1.setCreateTime(System.currentTimeMillis());
|
||||||
|
|
||||||
|
//事务性批量操作
|
||||||
|
DataBatch batch = DataBatch.create()
|
||||||
|
.insert(a1)
|
||||||
|
.updateColumn(Account.class, FilterNodes.lt(Account::getAge, 16),
|
||||||
|
ColumnValue.set(Account::getRemark, "不满16岁是青少年"))
|
||||||
|
.delete(Account.class, FilterNodes.lt(Account::getAge, 16).and("gender", GENDER_MALE));
|
||||||
|
source.batch(batch);
|
||||||
|
```
|
||||||
|
|
||||||
|
  查询实体对象:
|
||||||
```java
|
```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));
|
|
||||||
```
|
```
|
||||||
@@ -25,7 +25,6 @@ import org.redkale.persistence.Entity;
|
|||||||
import org.redkale.service.*;
|
import org.redkale.service.*;
|
||||||
import static org.redkale.source.DataSources.*;
|
import static org.redkale.source.DataSources.*;
|
||||||
import org.redkale.util.*;
|
import org.redkale.util.*;
|
||||||
import org.redkale.annotation.ResourceChanged;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DataSource的S抽象实现类 <br>
|
* DataSource的S抽象实现类 <br>
|
||||||
@@ -1244,12 +1243,12 @@ public abstract class AbstractDataSource extends AbstractService implements Data
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> DataBatch update(Class<T> clazz, Serializable pk, String column, Serializable value) {
|
public <T> DataBatch updateColumn(Class<T> clazz, Serializable pk, String column, Serializable value) {
|
||||||
return update(clazz, pk, ColumnValue.set(column, value));
|
return updateColumn(clazz, pk, ColumnValue.set(column, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> DataBatch update(Class<T> clazz, Serializable pk, ColumnValue... values) {
|
public <T> DataBatch updateColumn(Class<T> clazz, Serializable pk, ColumnValue... values) {
|
||||||
Objects.requireNonNull(clazz);
|
Objects.requireNonNull(clazz);
|
||||||
if (clazz.getAnnotation(Entity.class) == null) {
|
if (clazz.getAnnotation(Entity.class) == null) {
|
||||||
throw new SourceException("Entity Class " + clazz + " must be on Annotation @Entity");
|
throw new SourceException("Entity Class " + clazz + " must be on Annotation @Entity");
|
||||||
@@ -1266,17 +1265,17 @@ public abstract class AbstractDataSource extends AbstractService implements Data
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> DataBatch update(Class<T> clazz, FilterNode node, String column, Serializable value) {
|
public <T> DataBatch updateColumn(Class<T> clazz, FilterNode node, String column, Serializable value) {
|
||||||
return update(clazz, node, (Flipper) null, ColumnValue.set(column, value));
|
return updateColumn(clazz, node, (Flipper) null, ColumnValue.set(column, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> DataBatch update(Class<T> clazz, FilterNode node, ColumnValue... values) {
|
public <T> DataBatch updateColumn(Class<T> clazz, FilterNode node, ColumnValue... values) {
|
||||||
return update(clazz, node, (Flipper) null, values);
|
return updateColumn(clazz, node, (Flipper) null, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> DataBatch update(Class<T> clazz, FilterNode node, Flipper flipper, ColumnValue... values) {
|
public <T> DataBatch updateColumn(Class<T> clazz, FilterNode node, Flipper flipper, ColumnValue... values) {
|
||||||
Objects.requireNonNull(clazz);
|
Objects.requireNonNull(clazz);
|
||||||
if (clazz.getAnnotation(Entity.class) == null) {
|
if (clazz.getAnnotation(Entity.class) == null) {
|
||||||
throw new SourceException("Entity Class " + clazz + " must be on Annotation @Entity");
|
throw new SourceException("Entity Class " + clazz + " must be on Annotation @Entity");
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ package org.redkale.source;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import org.redkale.util.LambdaFunction;
|
||||||
|
import org.redkale.util.LambdaSupplier;
|
||||||
import org.redkale.util.SelectColumn;
|
import org.redkale.util.SelectColumn;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,15 +45,13 @@ public interface DataBatch {
|
|||||||
|
|
||||||
public <T> DataBatch update(Collection<T> entitys);
|
public <T> DataBatch update(Collection<T> entitys);
|
||||||
|
|
||||||
public <T> DataBatch update(Class<T> clazz, Serializable pk, String column, Serializable value);
|
public <T> DataBatch updateColumn(Class<T> clazz, Serializable pk, String column, Serializable value);
|
||||||
|
|
||||||
public <T> DataBatch update(Class<T> clazz, Serializable pk, ColumnValue... values);
|
public <T> DataBatch updateColumn(Class<T> clazz, Serializable pk, ColumnValue... values);
|
||||||
|
|
||||||
public <T> DataBatch update(Class<T> clazz, FilterNode node, String column, Serializable value);
|
public <T> DataBatch updateColumn(Class<T> clazz, FilterNode node, String column, Serializable value);
|
||||||
|
|
||||||
public <T> DataBatch update(Class<T> clazz, FilterNode node, ColumnValue... values);
|
public <T> DataBatch updateColumn(Class<T> clazz, FilterNode node, Flipper flipper, ColumnValue... values);
|
||||||
|
|
||||||
public <T> DataBatch update(Class<T> clazz, FilterNode node, Flipper flipper, ColumnValue... values);
|
|
||||||
|
|
||||||
public <T> DataBatch updateColumn(T entity, final String... columns);
|
public <T> DataBatch updateColumn(T entity, final String... columns);
|
||||||
|
|
||||||
@@ -61,4 +61,23 @@ public interface DataBatch {
|
|||||||
|
|
||||||
public <T> DataBatch updateColumn(T entity, final FilterNode node, SelectColumn selects);
|
public <T> DataBatch updateColumn(T entity, final FilterNode node, SelectColumn selects);
|
||||||
|
|
||||||
|
default <T, V extends Serializable> DataBatch updateColumn(final Class<T> clazz, final Serializable pk, final LambdaSupplier<V> func) {
|
||||||
|
return updateColumn(clazz, pk, LambdaSupplier.readColumn(func), func.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
default <T> DataBatch updateColumn(final Class<T> clazz, final Serializable pk, LambdaFunction<T, ?> func, Serializable value) {
|
||||||
|
return updateColumn(clazz, pk, ColumnValue.set(func, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
default <T> DataBatch updateColumn(final Class<T> clazz, final FilterNode node, final ColumnValue... values) {
|
||||||
|
return updateColumn(clazz, node, (Flipper) null, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
default <T> DataBatch updateColumn(final T entity, final LambdaFunction<T, ?>... funcs) {
|
||||||
|
return updateColumn(entity, (FilterNode) null, LambdaFunction.readColumns(funcs));
|
||||||
|
}
|
||||||
|
|
||||||
|
default <T> DataBatch updateColumn(final T entity, final FilterNode node, final LambdaFunction<T, ?>... funcs) {
|
||||||
|
return updateColumn(entity, node, LambdaFunction.readColumns(funcs));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user