【发布时间】:2012-03-23 22:31:15
【问题描述】:
我正在开发一个相册 Web 应用程序,其中我使用两个表 USER_INFORMATION 和 USER_PHOTO。 USER_INFORMATION 只包含一条记录的用户记录,USER_PHOTO 包含来自单个用户的多张照片。我想获取用户信息的数量以及他们的 userimage 路径并将其存储到 Java Pojo 变量(如列表)中,以便我可以使用 struts 2 中的显示标签显示它。
表格是这样的。
USER_PHOTO USER_INFORMATION
======================= =================================
| IMAGEPATH | USER_ID | | USER_NAME | AGE | ADDRESS |ID |
======================= =================================
|xyz | 1 | | abs | 34 | sdas | 1 |
|sdas | 1 | | asddd | 22 | asda | 2 |
|qwewq | 2 | | sadl | 121 | asd | 3 |
| asaa | 1 | ==================================
| 121 | 3 |
=======================
如您所见,user_id=1 有 3 张照片,user_id=2 有 2 张照片,3 有一张照片。现在我想编写查询来获取用户信息以及他们的图像路径。
所以我尝试使用下面的代码将其存储在 ArrayList 中,我的代码在 Action 类中:
public ArrayList loadData() throws ClassNotFoundException, SQLException {
ArrayList userList = new ArrayList();
con = DriverManager.getConnection(url + dbName, userName, password);
PreparedStatement ps = null;
try {
String name;
String fatherName;
int Id;
String filePath;
int age;
String address;
String query = "SELECT NAME,FATHERNAME,AGE,ADDRESS,ID,FILEPATH FROM USER_INFORMATION ,USER_PHOTO WHERE ID=USER_ID";
ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
fatherName = rs.getString(2);
age = rs.getInt(3);
address = rs.getString(4);
Id = rs.getInt(5);
UserData list = new UserData();
list.setName(name);
list.setFatherName(fatherName);
list.setAge(age);
list.setAddress(address);
userList.add(list);
}
ps.close();
con.close();
我的 JSP 是这样的:
<display:table id="data" name="sessionScope.UserForm.userList" requestURI="/userAction.do" pagesize="1" >
<display:column property="name" title="NAME" sortable="true" />
<display:column property="fatherName" title="User Name" sortable="true" />
<display:column property="age" title="AGE" sortable="true" />
<display:column property="address" title="ADDRESS" sortable="true" />
<display:column property="filePath" title="PATH" sortable="true" />
</display:table>
所以当我显示它时,它会正确显示每个用户信息,但路径列是空白的。
预期输出:我想显示用户信息名称、年龄、地址和 IMAGEPATH(在另一个表中不止一条记录)。
【问题讨论】:
-
您使用的是什么数据库?当一个用户有多个图片路径时,是否要使用所有图片路径,第一个,最后一个?
-
Java db 我想获取所有图片路径
-
您将如何显示它们?表的“filePath”列中的所有路径都作为逗号分隔值?
-
我已经阅读了关于 GROUP_CONCAT() 函数的一些内容,我打算用它来连接字符串变量并设置它。 @beny23