Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有任何方法可以将特定列的值合并到单个类中?_Java_Oracle_Mybatis - Fatal编程技术网

Java 是否有任何方法可以将特定列的值合并到单个类中?

Java 是否有任何方法可以将特定列的值合并到单个类中?,java,oracle,mybatis,Java,Oracle,Mybatis,我正在使用JavaSpringMVC项目处理两个表。 下面的结果是SHOP表与CUSTOMER表的联接 | SHOP_NAME | SHOP_NUM | CUSTOMER_NAME | some other columns aside ... | | --------- | --------- | ------------- | ---------------------------- | | 'Mr.Jacks'| 1 | 'Bill' |

我正在使用JavaSpringMVC项目处理两个表。 下面的结果是SHOP表与CUSTOMER表的联接

| SHOP_NAME | SHOP_NUM  | CUSTOMER_NAME | some other columns aside ... |
| --------- | --------- | ------------- | ---------------------------- |
| 'Mr.Jacks'| 1         | 'Bill'        |                              |
| 'Mr.Jacks'| 1         | 'Ryan'        |                              |
| 'Mr.Jacks'| 1         | 'Kate'        |                              |
| 'Mr.Jacks'| 1         | 'Peter'       |                              |
| 'O`sushi' | 2         | 'Jackson'     |                              |
| 'O`sushi' | 2         | 'Park'        |                              |
我想把这些放到SearchResult VO中,它已经

private String shopName;
private int shopNo;
private String[] customerNames;
以及其他一些变量

在上面的表格中,将有两个SearchResult对象。 一个用于Jacks先生,阵列中有4个客户名称 还有一个是寿司,有两个顾客

在Oracle中使用mybatis进行单个查询有什么方法可以做到这一点吗? 我一直在用2个数据库访问来做这件事。
一个用于选择店铺信息,另一个用于客户栏,但我突然想到可能有更好的方法。

当然,只需一个查询即可。我不是MyBatis专家,所以我不能告诉您如何在那里映射它,但是使用普通JDBC,您需要执行一个查询,就像您用来生成所显示表的查询一样。然后迭代结果集,为每个新的SHOP_NUM值创建一个新的SearchResultVO,并将每个resultset行中的客户名称添加到相应的SearchResultVO。您甚至可以直接生成一个以数组形式返回客户名称的查询,但我也不是Oracle专家,因此我无法告诉您如何进行查询(如果有的话)。这是一个典型的N+1查询。您可以改为使用联接。这里有一个例子-关键是用XML正确地编码结果映射:@JeffButler感谢您的评论。好像是收藏标签。但我不是用我的自定义类而是字符串数组。如果我把它们放在select标记中,它还能工作吗?@Thomas this make sence,但它不是仍然可以访问数据库两次吗?@flipingflop要使到数组的映射工作,您需要将客户名称转换为SQL中的数组。我认为这可以通过PSQL过程来完成,但似乎不值得这么麻烦。在我的示例中,使用MyBatis N+1支持会容易得多,然后只需使用一行Java代码将List转换为String[]。