web-dev-qa-db-fra.com

comment récupérer des données de la base de données et les afficher dans des champs de texte jsp à l'aide d'une connexion jdbc

Je récupère des données de la base de données et les affiche sous forme de tableau dans une variable JSP, mais je ne sais pas comment les afficher dans des champs de texte.

par exemple. 

  1. quand je cherche un numéro d'index.
  2. le résultat (nom, adresse, âge) doit arriver aux textfeilds qui sont dans ma JSP

Mon code:

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
Gayan Priyanakara

Assurez-vous d’avoir inclus le pilote jdbc dans votre projet et «construisez-le». Ensuite:

  1. Établissez la connexion à la base de données et récupérez le résultat de la requête. 

  2. Renvoie le résultat de la requête et l'enregistre dans un objet de ResultSet.

  3. Parcourez l'objet et affichez les résultats de la requête.

L'exemple de code ci-dessous illustre cela en détail.

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;
}

J'ai essayé de rendre cet exemple aussi détaillé que possible. Si vous avez des questions, demandez.

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

Quelle base de données utilisez-vous? Par exemple, MySQL et MS Access ont chacun une méthode différente pour se connecter à la base de données.

Si vous pouvez établir une connexion, procédez comme suit:

  • faire un objet de classe qui interroge la base de données
  • appeler la fonction qui interrogera la base de données
  • renvoyer le résultat de la requête et l'enregistrer dans un objet de mySqlQuery
  • récupérez maintenant les lignes et affichez chaque colonne dans les champs de votre choix.

Si vous avez des problèmes, je peux vous fournir du code pour le réparer.

0
Raza Quaidian

Ajoutez la valeur extraite à un objet de requête ou de session et récupérez-la sur la page JSP à l'aide de scripts et d'expressions. ou vous pouvez aussi utiliser JSTL/EL comme ci-dessous 

Dans le gestionnaire ou la servlet, ajoutez la valeur extraite de la base de données à l'objet de requête 

request.setAttribute(theValueFromDB, "value");

puis transférez ou redirigez la page vers le JSP correspondant. Dans la page 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