sql >> データベース >  >> RDS >> Mysql

ドロップダウン選択に基づいてテーブル内のJSPでデータをフェッチする方法

    私はあなたの問題を解決するための完全な例を作成します。エラーが発生している場所を明確に指定しておらず、コードを理解するのが少し難しいです。

    このプログラムを実行してみてください。問題が確実に解決され、JSP、サーブレット、DBCodeについても理解が深まると確信しています。

    このプログラムを実行するとき。

    JSPページの2つのドロップダウン。

    1-すべての状態を表示します(デフォルトの動的値はデータベースから取得します)

    2-任意の州を選択したときに都市を表示します。

    いずれかの州を選択すると、都市が都市コンボボックスに表示され、ページを更新した後、選択した州の位置も州のコンボで安定します。

    状態を選択するときと同様に、さまざまなテーブルのレコードを表形式で表示するか、table、tr、tdタグを使用して言うことができます。

    データベース内の3つのテーブル-州、都市、データ

    状態-example.Cityを実行すると、デフォルトのすべての状態が状態コンボで表示されます。City-状態を選択すると、都市は選択した状態に基づいて表示されます。data-状態を選択すると、データは表形式で表示されます(ベースではなくすべてのデータを取得しただけです)。何からでも)

    ファイル-JSP(クライアント、サーバー側コード)、サーブレット(サーバー側コード)、DBCoding(データベースコード)

    IDE-MyEclipseDatabase-MS SQL 2012

    JSPコーディング

    <%@ page language="java" import="java.util.*,DBCode.*" pageEncoding="ISO-8859-1"%>
    <%@page import="java.sql.ResultSet"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
    
        <title>My JSP 'MyJsp.jsp' starting page</title>
    
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <script type="text/javascript">
        function abc()
        {
            document.forms["formname"].submit();
        }
        </script>
      </head>
      <%
    
      DBCoding db = new DBCoding();
      ArrayList al = new ArrayList();
      al = db.RetrieveStateName();
      String value1="";
       %>
      <body>
      <form action="Servlet1" method="post" name="formname" id="formname">
        <select id="selectvalue" name="selectvalue" onchange="abc()";>
    
        <%if(request.getParameter("abc")!=null)
        {
        String result = request.getParameter("abc");
        %>
            <%for(int i=0;i<al.size();i++)
            {
                if(al.get(i).equals(result))
                {%>
                <option value= "<%=al.get(i) %>" selected="selected"><%=al.get(i) %></option>
                <%}
                else
                {%>
    
                <option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
                <%} %>
            <%}%>
        <%}
        else
        { %>
    
        <%for(int i=0;i<al.size();i++)
        {
         %>
        <option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
        <%} %>
    
        <%} %>
    
        </select>
    
        <%ArrayList ob = new ArrayList(); %>
        <%if(request.getAttribute("City_Name")!=null)
        {
            ob = (ArrayList)request.getAttribute("City_Name");
            %>
            <select id="selectcity" name="selectcity">
            <%for(int j=0;j<ob.size();j++)
            {
            %>
                <option><%=ob.get(j)%></option>
           <%} %>
            </select><br/><br/>
            <table>
            <tr>
            <td>Id</td>
            <td>Name</td>
            <td>Age</td>
            <td>City</td>
            <%
                  DBCoding db2 = new DBCoding();
                  ArrayList al2 = new ArrayList();
                  ResultSet rs = db2.getTable();
                  while(rs.next()){
                  %>
                  <tr>
                    <td><%=rs.getString(1) %></td>
                    <td><%=rs.getString(2) %></td>
                    <td><%=rs.getString(3) %></td>
                    <td><%=rs.getString(4) %></td>
                </tr>
                   <%
                   } %>
        <%} 
        else
        {
    
        %>
            <select>
            <option></option>
            </select>
        <%} %>
        </form>
      </body>
    </html>
    

    サーブレットコーディング

    import java.io.IOException;
    import java.util.*;
    import java.io.PrintWriter;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import DBCode.DBCoding;
    
    
    public class Servlet1 extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public Servlet1() {
            super();
        }
    
        public void destroy() {
            super.destroy(); 
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            String getstatename = request.getParameter("selectvalue");
    
            DBCoding ob = new DBCoding();
            ArrayList al = new ArrayList();
            al = ob.RetrieveCityName(getstatename);
    
            request.setAttribute("City_Name", al);
    
            RequestDispatcher rd = request.getRequestDispatcher("MyJsp.jsp?abc="+getstatename);
            rd.forward(request, response);
        }
        public void init() throws ServletException {
            // Put your code here
        }
    
    }
    

    DBCoding-データベースコード

    import java.sql.*;
    import java.util.*;
    public class DBCoding
    {
        Connection con;
        PreparedStatement ps;
        ResultSet rs;
        int result=0;
        public DBCoding()
        {
            try
            {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                con=DriverManager.getConnection("jdbc:odbc:SearchAccount");
            }
            catch(Exception ee)
            {}
        }
        public ArrayList RetrieveStateName()
        {
            ArrayList ob = new ArrayList();
            try
            {
            ps = con.prepareStatement("select distinct states from States");
            rs = ps.executeQuery();
            while(rs.next())
            {
                ob.add(rs.getString(1));
            }
            }
            catch(Exception ee)
            {}
            return ob;
        }
        public ArrayList RetrieveCityName(String statename)
        {
            ArrayList ob = new ArrayList();
            try
            {
            ps = con.prepareStatement("select city from city where statename=?");
            ps.setString(1,statename);
            rs = ps.executeQuery();
            while(rs.next())
            {
                ob.add(rs.getString(1));
            }
            }
            catch(Exception ee)
            {}
            return ob;
        }
    
        public ResultSet getTable()
        {
            ResultSet rs = null;
            try
            {
            ps = con.prepareStatement("select * from data");
            rs = ps.executeQuery();
            }
            catch(Exception ee)
            {}
            return rs; 
        }
    }
    

    この例を実行した後、クエリが表示された場合は、メッセージをドロップしてください。確実に整理します。




    1. T-SQLの複数列ピボット

    2. SQLServerからPostgreSQLに徐々に移行する

    3. ルームライブラリを使用してstrftimeとdatetimeを正しく使用するにはどうすればよいですか?

    4. JSON引数を使用したPostgresバルクINSERT関数