doc
This commit is contained in:
@@ -1,2 +1,100 @@
|
|||||||
# DB数据源
|
# 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));
|
||||||
|
```
|
||||||
@@ -22,12 +22,14 @@ public class UserService implements Service {
|
|||||||
@Resource(name = "platf")
|
@Resource(name = "platf")
|
||||||
private DataSource source;
|
private DataSource source;
|
||||||
|
|
||||||
@RestMapping(auth = true, comment = "更改密码")
|
//请求url: /user/updatePwd?bean={}
|
||||||
|
@RestMapping(auth = true, methods = "POST", comment = "更改密码(只能POST请求)")
|
||||||
public RetResult<String> updatePwd(@RestUserid long userid, UserPwdBean bean) {
|
public RetResult<String> updatePwd(@RestUserid long userid, UserPwdBean bean) {
|
||||||
//逻辑处理
|
//逻辑处理
|
||||||
return RetResult.success();
|
return RetResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//请求url: /user/updateIntro?intro=xxx
|
||||||
@RestMapping(auth = true, comment = "更新用户介绍")
|
@RestMapping(auth = true, comment = "更新用户介绍")
|
||||||
public RetResult<String> updateIntro(@RestUserid long userid, String intro) {
|
public RetResult<String> updateIntro(@RestUserid long userid, String intro) {
|
||||||
intro = Utility.orElse(intro, ""); //为null则用""
|
intro = Utility.orElse(intro, ""); //为null则用""
|
||||||
@@ -36,6 +38,7 @@ public class UserService implements Service {
|
|||||||
return RetResult.success();
|
return RetResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//请求url: /user/updateGender?gender=1
|
||||||
@RestMapping(auth = true, comment = "修改用户性别(异步方法)")
|
@RestMapping(auth = true, comment = "修改用户性别(异步方法)")
|
||||||
public CompletableFuture<RetResult<String>> updateGender(@RestUserid long userid, short gender) {
|
public CompletableFuture<RetResult<String>> updateGender(@RestUserid long userid, short gender) {
|
||||||
if (gender != GENDER_MALE && gender != GENDER_FEMALE) {
|
if (gender != GENDER_MALE && gender != GENDER_FEMALE) {
|
||||||
|
|||||||
@@ -651,7 +651,7 @@ public abstract class NodeServer {
|
|||||||
protected ClassFilter createClassFilter(final String localGroup, Class<? extends Annotation> ref,
|
protected ClassFilter createClassFilter(final String localGroup, Class<? extends Annotation> ref,
|
||||||
Class inter, Class[] excludeSuperClasses, Class<? extends Annotation> ref2, String properties, String property) {
|
Class inter, Class[] excludeSuperClasses, Class<? extends Annotation> ref2, String properties, String property) {
|
||||||
ClassFilter cf = new ClassFilter(this.serverClassLoader, ref, inter, excludeSuperClasses, null);
|
ClassFilter cf = new ClassFilter(this.serverClassLoader, ref, inter, excludeSuperClasses, null);
|
||||||
if (properties == null && properties == null) {
|
if (properties == null) {
|
||||||
cf.setRefused(true);
|
cf.setRefused(true);
|
||||||
return cf;
|
return cf;
|
||||||
}
|
}
|
||||||
@@ -687,7 +687,7 @@ public abstract class NodeServer {
|
|||||||
ClassFilter filter = new ClassFilter(this.serverClassLoader, ref, inter, excludeSuperClasses, prop);
|
ClassFilter filter = new ClassFilter(this.serverClassLoader, ref, inter, excludeSuperClasses, prop);
|
||||||
for (AnyValue av : list.getAnyValues(property)) { // <service>、<filter>、<servlet> 节点
|
for (AnyValue av : list.getAnyValues(property)) { // <service>、<filter>、<servlet> 节点
|
||||||
final AnyValue[] items = av.getAnyValues("property");
|
final AnyValue[] items = av.getAnyValues("property");
|
||||||
if (av instanceof AnyValueWriter && items.length > 0) { //存在 <property>节点
|
if (items.length > 0) { //存在 <property>节点
|
||||||
AnyValueWriter dav = AnyValueWriter.create();
|
AnyValueWriter dav = AnyValueWriter.create();
|
||||||
final AnyValue.Entry<String>[] strings = av.getStringEntrys();
|
final AnyValue.Entry<String>[] strings = av.getStringEntrys();
|
||||||
if (strings != null) { //将<service>、<filter>、<servlet>节点的属性值传给dav
|
if (strings != null) { //将<service>、<filter>、<servlet>节点的属性值传给dav
|
||||||
|
|||||||
Reference in New Issue
Block a user