Java 如何循环数据库并打印表中的所有项
我试图创建一个Servlet,列出数据库表中的所有项。我想把这些项目放在一个HTML表格中。因此,考虑到目前为止我所拥有的,我是否可以在while循环中添加HTML表布局,并将其连接到数据库并打印所有项目Java 如何循环数据库并打印表中的所有项,java,jsp,servlets,jdbc,Java,Jsp,Servlets,Jdbc,我试图创建一个Servlet,列出数据库表中的所有项。我想把这些项目放在一个HTML表格中。因此,考虑到目前为止我所拥有的,我是否可以在while循环中添加HTML表布局,并将其连接到数据库并打印所有项目 import java.sql.*; import database.*; public class products { public static void main(String[] args) { DBConnections dataSource =
import java.sql.*;
import database.*;
public class products
{
public static void main(String[] args)
{
DBConnections dataSource = DBConnections.getInstance();
Connection conn = dataSource.getConnection();
Statement stat = null;
ResultSet result = null;
try
{
stat = conn.createStatement();
result = stat.executeQuery("SELECT * FROM Products");
string code;
string item;
float payment;
while (result.next())
{
proCode = result.get("code");
item = result.get("item");
payment = result.geFloat("Payment");
System.out.println(proCode + "\t" + item + "\t" + payment);
}
}
catch (SQLException ex)
{
System.err.println("SQLException in Query.java");
ex.printStackTrace(System.err);
}
finally
{
DBUtilities.closeResultSet(result);
DBUtilities.closeStatement(stat);
dataSource.freeConnection(conn);
}
}
}
这样做的好方法是: 将与数据库相关的代码和方法放在另一个类中,例如
ProductDao
中有ProductDao.getAllProducts()
方法,该方法将返回List
,因为您使用的是JDBC,所以需要将POJO映射到DB表
现在在Servlet上,在request属性中设置产品列表
request.setAttribute("productsToDisplay", listOfProducts);
将此请求转发给呈现视图的JSP
在JSP上,使用JSTL呈现产品
见
您可能不知道JSP和JSTL。Java标准模板库允许您将动态HTML页面编写为Java服务器页面,并为您编译成servlet。好的,您编写的内容是正确的,但它不是servlet 首先,您需要将类基于HttpServlet类
public class products extends HttpServlet {
然后使用doGet
或doPost
来响应请求,而不是使用main
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
另请参阅Jigar Joshi在producstDao上的帖子。一旦你有了这个列表,你就把它传递给一个JSP,这将产生HTML
关于这方面的一本好书是O'Reilly的“Head First Servlets and JSP(通过sun认证的web组件开发人员考试)”
您可能也会发现这很有用
这是一个相当陡峭的学习曲线,我花了一段时间才弄明白,但一旦你有了它,它的工作相当好