Sfoglia il codice sorgente

readme中ipu-nosql补充;
mongodb使用案例修改;

miaozy 5 anni fa
parent
commit
ec904f886b

+ 27 - 6
ipu-rest-scaffold/readme.md

@ -23,13 +23,34 @@ webapp下可存放静态页面,便于前后端开发联调。
23 23
SQL被统一存放在classpath的sql路径下,如:sql.ipu.demo。
24 24
使用命名空间+id的方式定位SQL配置,DbSqlMgmtController有代码使用范例。
25 25
###四、ipu-nosql组件
26
- 目前ipu-nosql仅支持mongoDB,对应的配置文件为:ipu-nosql.xml
27
- 该组件使用案例在:MongoDbController中
26
- 1.ipu-nosql组件的引入
27
    - 以maven为例,请在pom.xml中引入ipu-nosql组件和mongodb驱动包
28
        ```
29
        <dependency>
30
            <groupId>com.ai.ipu</groupId>
31
            <artifactId>ipu-nosql</artifactId>
32
            <version>0.0.1-SNAPSHOT</version>
33
        </dependency>
34
        <dependency>
35
            <groupId>org.mongodb</groupId>
36
            <artifactId>mongo-java-driver</artifactId>
37
            <version>3.11.2</version>
38
        </dependency>
39
        ```
40
- 目前ipu-nosql组件仅支持mongoDB,对应的配置文件为:ipu-nosql.xml
28 41
- 该组件支持事务:遵循规则为:execution(* com.ai..service..*Impl.process*(..))
29
- 若开启事物请在ipu-nosql.xml配置文件中将needTranscation属性设置为true
30
    ```
31
    <config name="needTranscation" value="true"/>
32
    ```
42
    - 1、execution(): 表达式主体。
43
    - 2、第一个*号:表示返回类型,*号表示所有的类型。
44
    - 3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,拦截com.ai..service..包、子包下所有类的方法。
45
    - 4、第二个*号:表示类名,*号表示所有的类,*Impl表示拦截以Impl结尾的类名
46
    - 5、最后这个星号表示方法名,*号表示所有的方法,process*(..)表示会拦截以process开头的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。
47
    - 若开启事物请在ipu-nosql.xml配置文件中将needTranscation属性设置为true
48
        ```
49
        <config name="needTranscation" value="true"/>
50
        ```
51
- 该组件使用案例在:MongoDbController中
52

53

33 54
###打包运行
34 55
java -Dipu.lic.path=ipu.lic -jar ipu-rest-scaffold.jar --server.port=8080
35 56


+ 41 - 8
ipu-rest-scaffold/src/main/java/com/ai/ipu/server/control/MongoDbController.java

@ -1,7 +1,12 @@
1 1
package com.ai.ipu.server.control;
2 2
3
import com.ai.ipu.basic.util.IpuUtility;
3 4
import com.ai.ipu.data.JMap;
5
import com.ai.ipu.data.impl.JsonMap;
6
import com.ai.ipu.nosql.INoSql;
7
import com.ai.ipu.nosql.mongodb.MongoCacheFactory;
4 8
import com.ai.ipu.server.service.MongoDbService;
9
import com.ai.ipu.server.util.RestScaffoldConstant;
5 10
import org.springframework.beans.factory.annotation.Autowired;
6 11
import org.springframework.stereotype.Controller;
7 12
import org.springframework.web.bind.annotation.*;
@ -17,28 +22,56 @@ public class MongoDbController {
17 22
    @Autowired
18 23
    MongoDbService MongoDbService;
19 24
25
    private String connName = "data";
26
    private String dbName = "test";
27
    private String tableName = "mycol1";
28
20 29
    @ResponseBody
21 30
    @RequestMapping("/select")
22
    public JMap executeSelect(JMap params) throws Exception{
23
        return MongoDbService.executeSelect(params);
31
    public JMap executeSelect(JMap params) throws Exception {
32
        JMap retMap = new JsonMap();
33
        try {
34
            retMap = MongoDbService.executeSelect(params,connName,dbName,tableName);
35
        } catch (Exception e) {
36
            IpuUtility.errorCode(RestScaffoldConstant.SERVER_003);
37
        }
38
        return retMap;
24 39
    }
25 40
26 41
    @ResponseBody
27 42
    @RequestMapping("/insert")
28
    public JMap executeInsert(JMap params) throws Exception{
29
        return  MongoDbService.processInsert(params);
43
    public JMap executeInsert(JMap params) throws Exception {
44
        JMap retMap = new JsonMap();
45
        try {
46
            retMap = MongoDbService.processInsert(params,connName,dbName,tableName);
47
        } catch (Exception e) {
48
            IpuUtility.errorCode(RestScaffoldConstant.SERVER_003);
49
        }
50
        return retMap;
30 51
    }
31 52
32 53
    @ResponseBody
33 54
    @RequestMapping("/update")
34
    public JMap executeUpdate(JMap params) throws Exception{
35
        return  MongoDbService.processUpdate(params);
55
    public JMap executeUpdate(JMap params) throws Exception {
56
        JMap retMap = new JsonMap();
57
        try {
58
            retMap = MongoDbService.processUpdate(params,connName,dbName,tableName);
59
        } catch (Exception e) {
60
            IpuUtility.errorCode(RestScaffoldConstant.SERVER_003);
61
        }
62
        return retMap;
36 63
    }
37 64
38 65
    @ResponseBody
39 66
    @RequestMapping("/delete")
40
    public JMap executeDelete(JMap params) throws Exception{
41
        return MongoDbService.processDelete(params);
67
    public JMap executeDelete(JMap params) throws Exception {
68
        JMap retMap = new JsonMap();
69
        try {
70
            retMap = MongoDbService.processDelete(params,connName,dbName,tableName);
71
        } catch (Exception e) {
72
            IpuUtility.errorCode(RestScaffoldConstant.SERVER_003);
73
        }
74
        return retMap;
42 75
    }
43 76
44 77
}

+ 8 - 4
ipu-rest-scaffold/src/main/java/com/ai/ipu/server/service/MongoDbService.java

@ -2,13 +2,17 @@ package com.ai.ipu.server.service;
2 2
3 3
import com.ai.ipu.data.JMap;
4 4
5
/**
6
 * @author miaozy@asiainfo.com
7
 */
5 8
public interface MongoDbService {
6 9
7
    JMap executeSelect(JMap params) throws Exception;
10
    JMap executeSelect(JMap params, String connName, String dbName, String tableName) throws Exception;
8 11
9
    JMap processInsert(JMap params) throws Exception;
12
    JMap processInsert(JMap params, String connName, String dbName, String tableName) throws Exception;
10 13
11
    JMap processUpdate(JMap params) throws Exception;
14
    JMap processUpdate(JMap params, String connName, String dbName, String tableName) throws Exception;
15
16
    JMap processDelete(JMap params, String connName, String dbName, String tableName) throws Exception;
12 17
13
    JMap processDelete(JMap params) throws Exception;
14 18
}

+ 26 - 40
ipu-rest-scaffold/src/main/java/com/ai/ipu/server/service/impl/MongoDbServiceImpl.java

@ -1,69 +1,55 @@
1 1
package com.ai.ipu.server.service.impl;
2 2
3 3
import com.ai.ipu.data.JMap;
4
import com.ai.ipu.data.impl.JsonMap;
4 5
import com.ai.ipu.nosql.INoSql;
5 6
import com.ai.ipu.nosql.mongodb.MongoCacheFactory;
6 7
import com.ai.ipu.server.service.MongoDbService;
7
import com.ai.ipu.server.util.RestScaffoldConstant;
8
import com.alibaba.fastjson.JSONObject;
9 8
import org.springframework.stereotype.Service;
10 9
11
import java.util.HashMap;
12
import java.util.List;
13
import java.util.Map;
14 10
11
/**
12
 * @author miaozy@asiainfo.com
13
 */
15 14
@Service
16 15
public class MongoDbServiceImpl implements MongoDbService {
17 16
18
    private String connName = "data";
19
    private String dbName = "test";
20
    private String tableName = "mycol1";
21 17
22 18
    @Override
23
    public JMap executeSelect(JMap params) throws Exception {
19
    public JMap executeSelect(JMap params, String connName, String dbName, String tableName) throws Exception {
20
        JMap retMap = new JsonMap();
21
        String condParam = params.getString("condParam");
22
        String sortParam = params.getString("sortParam") == null ? "{}" : params.getString("sortParam");
24 23
        INoSql noSql = MongoCacheFactory.getMongoDao(connName, dbName, tableName);
25
        JSONObject condParam = new JSONObject();
26
        condParam.put("nickName", "tom");
27
        List<String> resultList = noSql.executeSelect(condParam.toJSONString(), "{}");
28
        params.put("retList",resultList);
29
        return params;
24
        retMap.put("retList", noSql.executeSelect(condParam, sortParam));
25
        return retMap;
30 26
    }
31 27
32 28
    @Override
33
    public JMap processInsert(JMap params) throws Exception {
29
    public JMap processInsert(JMap params, String connName, String dbName, String tableName) throws Exception {
30
        JMap retMap = new JsonMap();
34 31
        INoSql noSql = MongoCacheFactory.getMongoDao(connName, dbName, tableName);
35
        JSONObject param = new JSONObject();
36
        param.put("name", "mongo");
37
        JSONObject data = new JSONObject();
38
        data.put("name", "mongo");
39
        data.put("age","6");
40
        data.put("nickName", "tom");
41
        Map info = new HashMap();
42
        info.put("ver", 5.0);
43
        data.put("info", info);
44
        noSql.executeInsert(data.toJSONString());
45
        return params;
32
        String data = params.getString("data");
33
        noSql.executeInsert(data);
34
        return retMap;
46 35
    }
47 36
48 37
    @Override
49
    public JMap processUpdate(JMap params) throws Exception{
38
    public JMap processUpdate(JMap params, String connName, String dbName, String tableName) throws Exception {
39
        JMap retMap = new JsonMap();
40
        String condParam = params.getString("condParam");
41
        String updateField = params.getString("updateField");
50 42
        INoSql noSql = MongoCacheFactory.getMongoDao(connName, dbName, tableName);
51
        JSONObject condParam = new JSONObject();
52
        condParam.put("nickName", "tom");
53
        JSONObject updateField = new JSONObject();
54
        updateField.put("name", "1256");
55
        updateField.put("age","11");
56
        updateField.put("info.ver",10.0);
57
        noSql.executeUpdateMany(condParam.toJSONString(), updateField.toJSONString());
58
        return params;
43
        noSql.executeUpdateMany(condParam, updateField);
44
        return retMap;
59 45
    }
60 46
61 47
    @Override
62
    public JMap processDelete(JMap params) throws Exception{
48
    public JMap processDelete(JMap params, String connName, String dbName, String tableName) throws Exception {
49
        JMap retMap = new JsonMap();
50
        String condParam = params.getString("condParam");
63 51
        INoSql noSql = MongoCacheFactory.getMongoDao(connName, dbName, tableName);
64
        JSONObject condParam = new JSONObject();
65
        condParam.put("nickName", "tom");
66
        noSql.executeDeleteMany(condParam.toJSONString());
67
        return params;
52
        noSql.executeDeleteMany(condParam);
53
        return retMap;
68 54
    }
69 55
}