前面《低代码二开平台泛微E10(六)二开代码之操作数据库教程》我们介绍了根据泛微提供的E10开发文档进行数据库的操作,这里的话,我们提供另外一种更通用的方式来进行数据库的操作,这里相比使用泛微提供的文档进行操作的好处有:
1、可以自己指定数据库的位置 2、想要使用哪个数据库会更清晰点
下面我们来演示一下:
1、创建数据库
这里我们不管数据库放在什么位置,我们在泛微的平台上创建对应的链接即可,比如我这里有一个演示的数据库,如下图:
这里我没有另外在做数据库,直接使用泛微初始化表的数据库来做演示,实际的时候这些数据库大家可以放在任意位置,这里没有任何要求。
2、创建链接
这里的话,我们需要登录泛微E10二开低代码平台的后台管理中心里面创建连接,具体位置是:泛微E10二开低代码平台后台管理系统->平台引擎->数据加工->数据链接,如下图:
这里我们可以新建连接,比如我要操作上面的步骤一的eteams库,那么我们新建的连接是:
填写完成之后,我们需要测试连接一下,保证这个数据源有用
然后点击保存,这里我们的数据源连接就弄好了。
三、代码二开操作数据库查询
这里操作数据库的话,咱们就使用需要使用到外部的数据源来进行操作了,但是总体操作和操作内部数据库是一样的,示例代码如下:
@Autowired SecondevDataSetUtil secondevDataSetUtil; String sql = "select * from users where id = ?"; List<SqlParamEntity> logicSqlParams = new ArrayList<>(); SqlParamEntity sqlParam1 = new SqlParamEntity(); sqlParam1.setParamType(SqlParamType.VARCHAR); sqlParam1.setValue(id); logicSqlParams.add(sqlParam1); Map<String, Object> rs = secondevDataSetUtil.executeSql(SourceType.EXTERNAL, externalGroupId, sql, logicSqlParams);
上面是示例代码,大家可以看到总体上和操作泛微E10内部的数据库是一样的,唯一的区别有2个,分别是:
1、第一个区别是这里的type需要使用SourceType.External,之前操作内部数据库的时候使用的是SourceType,LOGIC,操作外部数据源的话,需要使用External。
2、第二个区别是这里的groupid,在操作内部的数据库的时候,这里的groupid传值是各个微服务的service id,使用外部数据源的时候,这里的groupid就不能使用微服务的serviceid了,而是去找创建的外部数据源的id,这个id怎么找呢?步骤如下:
1)首先进入到泛微E10的微服务平台的后台管理中心
2)进入到数据加工->数据连接里面
可以看到这里有我们创建的所有的第三方外部数据源,这里我们想要获取到某一个数据源的id的话,打开浏览器的F12,选中这里的network选项
然后选中我们想要找的数据源,在network下可以看到具体的请求里面有一个getConnById的请求
然后咱们选中这个请求,在payload里面可以看到这里的id,
这个id就是我们要找的指定的第三方数据源的groupid,把他放到代码里面去,示例如下:
@Autowired SecondevDataSetUtil secondevDataSetUtil; String sql = "select * from users where id = ?"; List<SqlParamEntity> logicSqlParams = new ArrayList<>(); SqlParamEntity sqlParam1 = new SqlParamEntity(); sqlParam1.setParamType(SqlParamType.VARCHAR); sqlParam1.setValue(id); logicSqlParams.add(sqlParam1); Map<String, Object> rs = secondevDataSetUtil.executeSql(SourceType.EXTERNAL, "100000490000000005", sql, logicSqlParams);
最后把这段代码,编写一个测试接口就能获取查询到第三方的数据了,返回的结果和内部数据库返回的结果字段格式是一模一样的。
还没有评论,来说两句吧...