web-dev-qa-db-ja.com

データベースからデータを取得してjdbc接続を使用してjspテキストフィールドに表示する方法

データベースからデータを取得してJSPのテーブルに表示していますが、テキストフィールドに表示する方法がわかりません。

例えば.

  1. インデックス番号を検索すると。
  2. 結果(名前、住所、年齢)は、私のJSPにあるテキストフィールドに来る必要があります

私のコード:

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();
    }
5

プロジェクトに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;
}

私はこの例をできるだけ詳細にしようと試みました。何か質問があれば尋ねます。

1
Pransh Tiwari
<input type="text" value=<%=rs.getString("table_coloumn_name")%>></input>
0
Don Chakkappan

どのデータベースを使用していますか?たとえば、MySQLとMS Accessでは、データベースに接続するための異なる方法があります。

接続できる場合は、次の手順を実行します

  • データベースにクエリしているクラスのオブジェクトを作成する
  • データベースをクエリする関数を呼び出す
  • クエリ結果を返し、mySqlQueryのオブジェクトに保存する
  • 行を取得して、必要なフィールドに各列を表示します。

問題がある場合は、それを修正するためのコードを提供できます。

0
Raza Quaidian

取得した値をリクエストまたはセッションオブジェクトに追加し、スクリプトレットと式を使用してJSPページで取得します。または、以下のようにJSTL/ELを使用することもできます

ハンドラーまたはサーブレットで、データベースから取得した値を要求オブジェクトに追加します

request.setAttribute(theValueFromDB, "value");

次に、ページを対応するJSPに転送またはリダイレクトします。 JSPページ

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

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

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