Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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_Sql_Hibernate_Jakarta Ee - Fatal编程技术网

Java 我应该采用什么类型的列表从另一个表连接(内部)两个表

Java 我应该采用什么类型的列表从另一个表连接(内部)两个表,java,sql,hibernate,jakarta-ee,Java,Sql,Hibernate,Jakarta Ee,我有3个表用户、产品和订单 USER: -----+-----------+------------+---------+----------+-----------+ u_id | username | password | contact | email | city | ------+-----------+------------+---------+---------+-----------+ PRODUCT: +------+----------+------

我有3个表用户、产品和订单

USER:
-----+-----------+------------+---------+----------+-----------+
 u_id | username  | password   | contact | email   | city      |
------+-----------+------------+---------+---------+-----------+

PRODUCT:
+------+----------+--------------+------+--------------+
| p_id | category | listed_price | qty  | description  |
+------+----------+--------------+------+--------------+

ORDERS:
+------+--------+------+------+-----------+
| o_id | date   | u_id | p_Id | order_qty |
+------+--------+------+------+-----------+
我想按以下顺序将用户表与产品以及o_id(来自订单)进行内部联接:

+-----------+-------+------+------+--------------+
| username  | email | p_id | o_id | listed_price |
+-----------+-------+------+------+--------------+
我的SQL查询如下:

productList = (List<Object[]>) session.createSQLQuery(
    "SELECT User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price " +
    "FROM Orders " +
    "INNER JOIN User " +
    "ON User.u_id = Orders.u_id" +
    "INNER JOIN Product " +
    "ON Product.p_id = Orders.p_id " +
    "WHERE Product.p_id = '"+p_id +"' " +
    "ORDER BY User.username").list();
productList=(List)session.createSQLQuery(
选择User.username、User.email、Orders.p\u id、Orders.o\u id、Product.listed\u price+
“来自订单”+
“内部加入用户”+
“ON User.u\u id=订单.u\u id”+
“内部联接产品”+
“ON Product.p_id=Orders.p_id”+
“其中Product.p_id=”+p_id+“”+
“ORDER BY User.username”).list();
它将返回
列表
。(对象数组列表),其中每个数组表示结果中的一行。值的索引基于select语句

在这里,您可以选择以下内容:

User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price

因此,每个对象数组中有5个元素。其中第一个元素是用户名,第二个元素是电子邮件,依此类推…

从您的查询
“选择User.username、User.email、Orders.p\u id、Orders.o\u id、Product.listed\u price”
它将返回
列表

您的查询风格存在很大的安全漏洞。永远不要用像这样的参数构建SQL字符串,谷歌“SQL注入”可以为你自己和你的雇主节省很多痛苦和专业赔偿保险..无法在JSP页面上获得输出。我在JSP页面中使用相同的列表来迭代vales,但无法在JSP页面上获取数据。事实上,调试后没有收到任何错误。@这可能是由于多个问题造成的。不看你的代码就很难猜出问题出在哪里。请看下面的代码片段链接。