2014-03-31 105 views
5

我從數據庫中檢索數據並在JSP的表中顯示它,但我對如何在文本字段中顯示它沒有任何意見。如何從數據庫中檢索數據並使用jdbc連接將其顯示在jsp文本字段中

例如

  1. 當我搜索索引號。
  2. 的結果(姓名,地址,年齡)一定要來這是我JSP

我的代碼textfeilds:

public class S2 extends HttpServlet { 


protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    Connection conn = null; 
    String url = "jdbc:mysql://localhost:3306/"; 
    String dbName = "shoppingCart"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String userName = "root"; 
    String password = ""; 

    Statement st; 
    try { 
     Class.forName(driver).newInstance(); 
     conn = DriverManager.getConnection(url + dbName, userName, password); 
     System.out.println("Connected!"); 
     String pid = request.getParameter("pid"); 

     ArrayList al = null; 
     ArrayList pid_list = new ArrayList(); 
     String query = "select * from user where uid='" + pid + "' "; 

     System.out.println("query " + query); 
     st = conn.createStatement(); 
     ResultSet rs = st.executeQuery(query); 

     while (rs.next()) { 

      al = new ArrayList(); 

      out.println(rs.getString(1)); 
      out.println(rs.getString(2)); 
      out.println(rs.getString(3)); 
      out.println(rs.getString(4)); 
      out.println(rs.getString(5)); 


      al.add(rs.getString(1)); 
      al.add(rs.getString(2)); 
      al.add(rs.getString(3)); 
      al.add(rs.getString(4)); 
      al.add(rs.getString(5)); 


      System.out.println("al :: " + al); 
      pid_list.add(al); 
     } 


     request.setAttribute("piList", pid_list); 
     RequestDispatcher view = request.getRequestDispatcher("/searchview.jsp"); 
     view.forward(request, response); 
     conn.close(); 
     System.out.println("Disconnected!"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

你到目前爲止嘗試過什麼?如果你搜索我的朋友,那裏有很多教程:) –

+0

谷歌是你的朋友,你可以問他,試試你得到了什麼,併發布到你的問題,如果你遇到任何問題或例外。 [這可能會幫助你](https://github.com/abhishek333/ServletAjaxDatePickerPostJson/blob/master/src/com/asn/WorkDataCRUD.java) – Rembo

回答

1

請確保您已包含在你的項目中的JDBC驅動程序和 「建」 了。然後:

  1. 進行數據庫連接並檢索查詢結果。

  2. 返回查詢結果並保存在ResultSet的對象中。

  3. 遍歷對象並顯示查詢結果。

下面的示例代碼詳細說明了這一點。

String label = request.getParameter("label"); 
//retrieving a variable from a previous page 

Connection dbc = null; //Make connection to the database 
Class.forName("com.mysql.jdbc.Driver"); 
dbc = DriverManager.getConnection("jdbc:mysql://localhost:3306/works", "root", "root"); 

if (dbc != null) 
{ 
    System.out.println("Connection successful"); 
} 
ResultSet rs = listresult.dbresult.func(dbc, label); 
//The above function is mentioned in the end. 
//It is defined in another package- listresult 

while (rs.next()) 
{ 
%> 
<form name="demo form" method="post"> 
    <table> 
     <tr> 
      <td> 
       Label Name: 
      </td> 
      <td> 
       <input type="text" name="label" 
       value="<%=rs.getString("lname")%>"> 
      </td> 
     </tr> 
    </table> 
</form> 
<% } %> 


public static ResultSet func(Connection dbc, String x) 
{ 
    ResultSet rs = null; 
    String sql; 
    PreparedStatement pst; 
    try 
    { 
     sql = "select lname from demo where label like '" + x + "'"; 
     pst = dbc.prepareStatement(sql); 
     rs = pst.executeQuery(); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
     String sqlMessage = e.getMessage(); 
    } 
    return rs; 
} 

我試圖讓這個例子儘可能詳細。如果有任何疑問的確要求。

0
<input type="text" value=<%=rs.getString("table_coloumn_name")%>></input> 
0

檢索到的值添加到一個請求或會話對象並使用腳本允許和表達式在JSP頁面上檢索它。或者你可以嘗試使用JSTL/EL太像下面

在處理程序或servlet從數據庫中添加獲取的值來請求對象

request.setAttribute(theValueFromDB, "value"); 

再往前或頁面重定向到相應的JSP。 在JSP頁面中

<input type="text" value="${ requestScope.value}"> 
0

您正在使用哪個數據庫?例如,MySQL和MS Access都有不同的方法來連接數據庫。

如果你可以做一個連接,然後執行以下操作

  • 使類的一個對象,它是查詢數據庫
  • 調用的函數,將查詢數據庫
  • 返回查詢結果並保存在mySqlQuery的對象中
  • 現在檢索行並在所需字段中顯示每列。

如果您有任何問題,我可以爲您提供解決問題的代碼。

+0

我已經做到了,但我有點困惑,如果我發給你一個你糾正它對我來說 –

+0

上午使用Mysql,我做了它仍然有點混淆可以爲我修復它,如果我把它發送給你 –

+0

是Gayan我會盡我所能爲你做它,請給我你的模型類(類連接到數據庫) –

0

而(!rs1.next()& &!rs2.next()){

  %> 
      <td><input type="checkbox" name="pteam" value=<%=rs1.getString("ename")%>>emp_name: </td> 
      <%x++;}}st.close();con.close();%> 
相關問題