java - 加入两个表 Mysql Java 并将其作为列表发送到 jsp
问题描述
我有两个表书和类型。一种类型可以分配给许多书籍。
这是书类。
public class Book {
private int idbook;
private String name;
private int type_idtype;
public int getIdbook() {
return idbook;
}
public void setIdbook(int idbook) {
this.idbook = idbook;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getType_idtype() {
return type_idtype;
}
public void setType_idtype(int type_idtype) {
this.type_idtype = type_idtype;
}
}
类型的另一个类:
public class Type {
private int idtype;
private String typename;
public int getIdtype() {
return idtype;
}
public void setIdtype(int idtype) {
this.idtype = idtype;
}
public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
}
}
另一个查询类 - 使用连接选择。我有列表和发送列表到 jsp 的问题。
Statement stmt;
stmt = conn.createStatement();
String sql = "SELECT book.name, type.typename from book Join type
on type.idtype=book.type_idtype";
ResultSet rs = stmt.executeQuery(sql);
Book b;
Type t;
List<Book> list = new ArrayList<Book>();
while(rs.next())
{
int count = rs.getRow();
b= new Book();
t=new Type();
b.setName(rs.getString("name"));
t.setTypename(rs.getString("typename"));
list.add(b);
}
request.getSession().setAttribute("list", list);
response.sendRedirect("booksjsp.jsp");
stmt.close();
conn.close();
列表应该发送到jsp。
<% List list = (List)session.getAttribute("list"); %>
<table border="1">
<tr>
<th>Name</th>
<th>Name</th>
</tr>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:forEach items="${list}" var="element">
<tr>
<td>${element.name}</td>
<td>${element.typename}</td>
</tr>
</c:forEach>
</table>
我可以用一张桌子选择并将其发送到jsp。我有问题如何发送以列出两个类的变量。
解决方案
如果您使用 @OneToMany 关系。您应该添加List<Book> field
类Type
,并将Type
字段添加到Book
类。然后在选择之后,你应该检索每本书,并为此设置它的类型,相反,设置要键入的书籍列表。这样它就可以工作了。
在您的代码中,您没有设置任何 t 来预订。
int count = rs.getRow();
b = new Book();
t = new Type();
b.setName(rs.getString("name"));
t.setTypename(rs.getString("typename"));
list.add(b);
它应该是这样的
int count = rs.getRow();
b = new Book();
t = new Type();
b.setName(rs.getString("name"));
t.setTypename(rs.getString("typename"));
b.setType(t);
list.add(b);
接着<td>${element.type.typename}</td>
请确保您已添加字段Type type
),正如我上面所说,请不要只复制代码!