起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5118|回复: 10

[处理中3] 如何在javaservlet中实现两表的查询结果内联连后返table

  [复制链接]

93

主题

234

帖子

850

积分

高级会员

Rank: 4

积分
850
QQ
发表于 2016-6-7 17:47:29 | 显示全部楼层 |阅读模式
rt


try {
  SQLStruct sqlStruct = new SQLStruct(sql);
  table1 = DataUtils.queryData(conn1, "select id,name,fshopid from u_user ", sqlStruct.getBinds(variables), columns, offset, limit);//
table2 =  DataUtils.queryData(conn2, "select fshopid ,fshopname from u_shop "sqlStruct.getBinds(variables), columns, offset, limit);
var sql = " select a.id,a.name,a.fshopid,b.fshopname  from "+ table1 +"as a  INNER JOIN  "+ table2 +" as b  on  a.fshopid = b.fshopid "//要实现的就是把以上两个结果内联接取出返回给UI
table=   以上sql的结果返回给 UI
  System.out.println("table:"+Transform.tableToJson(table));
  return Transform.tableToJson(table);
} finally {
  conn.close();
}
注:table1 与table2不同的数据源(不能在数据库做视图)
如:
table1                                           table2
id     name   fshopid                       fshopid        fshopname
001    张三      100                            99               立白专卖店
002    李四       99                             100              李宁服务店
UI 要取的结果 table:
id     name   fshopid             fshopname
001    张三      100              李宁服务店   
002    李四       99               立白专卖店

0

主题

18

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
发表于 2016-6-7 19:32:26 | 显示全部楼层
记得w3c官网有个特定指令
回复 支持 反对

使用道具 举报

发表于 2016-6-8 10:16:12 | 显示全部楼层
自定义sql查询,可以参考Baas/justep/demo.service.m 配置中queryUser 的写法!
案例是:/UI2/demo/baas/masterDetail/index.w

当然也可以自定义action实现!代码可以参考!:/Baas/takeoutAdmin/Statistics.java

如果你是想自己定义sevlet 来做!,建议看看3.2.1版本的写法吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

93

主题

234

帖子

850

积分

高级会员

Rank: 4

积分
850
QQ
 楼主| 发表于 2016-6-8 12:56:06 | 显示全部楼层
liangyongfei 发表于 2016-6-8 10:16
自定义sql查询,可以参考Baas/justep/demo.service.m 配置中queryUser 的写法!
案例是:/UI2/demo/baas/ma ...

看一下贴子问题吧,不是SQL自定义的问题,是返回数据table 后的处理
回复 支持 反对

使用道具 举报

发表于 2016-6-8 15:41:47 | 显示全部楼层
dwqgdgz 发表于 2016-6-8 12:56
看一下贴子问题吧,不是SQL自定义的问题,是返回数据table 后的处理

前台data组件中定义好相应的列!返回的数据直接执行data.loadData(数据) 把数据加载到data组件中!
剩下的就是可视组件绑定这个data组件显示数据了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

93

主题

234

帖子

850

积分

高级会员

Rank: 4

积分
850
QQ
 楼主| 发表于 2016-6-9 11:19:53 | 显示全部楼层
本帖最后由 dwqgdgz 于 2016-6-9 11:27 编辑

你说的我明白,但那不是两表内联接的结果,只是相当于 LEFT JOIN  我的问题想要的结果是 table1 INNER JOIN  table2

在javaservlet中sql1取的结果为table1 ,sql2取的结果为 table2 如下 

 table1                                           table2  
id     name   fshopid                       fshopid        fshopname
001    张三      100                            99               立白专卖店
002    李四       99                             102    美的空调 
003 王五  101         100             李宁服务店
004 小明  102
-----------------------------------------------------------------------------------
   (4记录)           (3)记录


javaservlet执行完后返回的结果table如下

        table
id     name   fshopid             fshopname
001    张三      100              李宁服务店   
002    李四       99               立白专卖店
-----------------------------------------------------------------------------------
      (2)记录


或者像你说的方法(不在avaservlet里内联接)两表返回后,在UI里怎样实现以上结果的绑定


回复 支持 反对

使用道具 举报

191

主题

688

帖子

3327

积分

论坛元老

Rank: 8Rank: 8

积分
3327
QQ
发表于 2016-6-10 14:09:59 | 显示全部楼层
跨数据库关联很难处理,应该设法把两个表放在一个数据库里,然后再处理
轻量化ERP--企业邦  网址:meiprocess.cn
qq:8269301
手机:13801998595
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-6-10 17:35:37 | 显示全部楼层
很好实现,循环遍历其中一个表,到第二个表里找数据进行赋值到计算列上。
但如果返回的结果集是Table对象,因为那个Table对象不提供快速索引功能,如果数据量较大,关联速度会很慢。不清楚官方会不会改进Table的检索功能,或者官方就没有人知道高效率的检索是怎么一个原理。反正这部分我以后肯定会重写的,WeX5只是给了一个思路,性能啥的真不行
回复 支持 反对

使用道具 举报

93

主题

234

帖子

850

积分

高级会员

Rank: 4

积分
850
QQ
 楼主| 发表于 2016-6-10 22:40:30 | 显示全部楼层
qldsrx 发表于 2016-6-10 17:35
很好实现,循环遍历其中一个表,到第二个表里找数据进行赋值到计算列上。
但如果返回的结果集是Table对象, ...

暂时也只能这样子了,性能当然是不怎么样的
回复 支持 反对

使用道具 举报

16

主题

54

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
QQ
发表于 2018-12-28 16:20:31 | 显示全部楼层
本帖最后由 kanmaogou1 于 2018-12-28 16:23 编辑
liangyongfei 发表于 2016-6-8 10:16
自定义sql查询,可以参考Baas/justep/demo.service.m 配置中queryUser 的写法!
案例是:/UI2/demo/baas/ma ...

你好,当然也可以自定义action实现!代码可以参考!:/Baas/takeoutAdmin/Statistics.java这个Statistics.java有U12案例吗


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-4-20 07:30 , Processed in 0.061294 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表