新了解的,简单的记录一下Ajax之三级联动

本文详细介绍了如何使用Java实现数据库连接(如MySQL),通过Province、City、Area实体类操作数据库,包括省、市、区县的CRUD操作,并展示了前端Ajax交互与后端Servlet的配合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先需要创建数据库,以下图片是个例子,可供参考~~~

创建完数据库后就需要再自己的开发软件中连接数据库,以及创建出与数据库相应的实体类了。

实体类中需要其相应的gei  set   无参  有参   toString 等相应的方法。

 

以及实现出相应的方法以及接口,参考代码如下:

一级代码:

接口与实现接口:

public class ProvinceDaoimpl implements ProvinceDao {
    @Override
    public List<Province> findAll() {
        Connection conn = DBTools.getConn();
        List<Province> list = new ArrayList<>();
        String sql = "SELECT * FROM province";
        try {
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            System.out.println("rs = " + rs);
            while (rs.next()){
                Province p = new Province();
                p.setPid(rs.getInt(1));
                p.setPname(rs.getString(2));
                list.add(p);
                System.out.println("p = " + p);
                System.out.println("list = " + list);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return list;
    }
}

然后是后台代码servlet:

@WebServlet("/findProvinceServlet")
public class findProvinceServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        ProvinceDao pid = new ProvinceDaoimpl();
        List<Province> plist = pid.findAll();
        System.out.println("plist = " + plist);
        response.getWriter().write(JSONObject.toJSONString(plist));
    }
}


 

二级代码:

接口与实现接口:

public class CityDaoimpl implements CityDao {
    @Override
    public List<City> findAll(int pid) {
        Connection conn = DBTools.getConn();
        List<City> clist = new ArrayList<>();
        String sql = "SELECT * FROM city where pid = ?";
        try {
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1,pid);
            ResultSet rs = ps.executeQuery();
            System.out.println("rs = " + rs);
            while (rs.next()){
                City c = new City();
                c.setCid(rs.getInt(1));
                c.setCname(rs.getString(2));
                c.setPid(rs.getInt(3));
                clist.add(c);
                System.out.println("c = " + c);
                System.out.println("clist = " + clist);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return clist;

    }
}

后台代码servlet:

@WebServlet("/findCityServlet")
public class findCityServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        String id = request.getParameter("id");

        CityDao cid = new CityDaoimpl();
        List<City> list = cid.findAll(Integer.parseInt(id));
        response.getWriter().write(JSONObject.toJSONString(list));
        System.out.println("list = " + list);
    }
}

三级代码:

接口与实现接口:

public class AreaDaoimpl implements AreaDao {
    @Override
    public List<Area> findAll(int cid) {

        Connection conn = DBTools.getConn();
        List<Area> alist = new ArrayList<>();
        String sql = "SELECT * FROM area where cid = ?";
        try {
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1,cid);
            ResultSet rs = ps.executeQuery();
            System.out.println("rs = " + rs);
            while (rs.next()){
                Area a = new Area();
                a.setAid(rs.getInt(1));
                a.setAname(rs.getString(2));
                a.setCid(rs.getInt(3));
                alist.add(a);
//                System.out.println("c = " + c);
//                System.out.println("clist = " + clist);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return alist;
    }
}

后台代码servlet:

@WebServlet("/findAreaServlet")
public class findAreaServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        String id = request.getParameter("id");

        AreaDao aid = new AreaDaoimpl();
        List<Area> list = aid.findAll(Integer.parseInt(id));
        response.getWriter().write(JSONObject.toJSONString(list));
        System.out.println("list = " + list);
    }
}

 

 

前端代码:

--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
    <script>
        $(function () {
            $.ajax({
                type:"get",
                url:"findProvinceServlet",
                dataType:"json",
                success:function (data) {
                    var obj = $("#province");
                    for (var i = 0;i<data.length;i++) {
                        var ob = "<option value='"+data[i].pid+"'>"+data[i].pname+"</option>";
                        obj.append(ob);
                    }
                }
            })
        })
    </script>


</head>
<body>
<select id="province" name="province">
    <option value="0">请选择游戏</option>
</select>
<script>


    $(function () {
        $("#province").change(function () {
            //alert("dasad");
             $("#city option").remove();
            $.ajax({
                type:"get",
                url:"findCityServlet?id="+$("#province").val(),
                dataType:"json",
                success:function (data) {
                    var obj = $("#city");
                    for (var i = 0;i<data.length;i++) {
                        var ob = "<option value='"+data[i].cid+"'>"+data[i].cname+"</option>";
                        obj.append(ob);
                    }
                }
            });
        });
    });

</script>
<select id="city" name="city">
    <option value="0" >请选择定位</option>
</select>
<select id="distric" name="distric">
    <option value="0">请选择英雄/枪械<option>
</select>
<script>


    $(function () {
        $("#city").change(function () {
            //alert("dasad");
            $("#distric option").remove();
            $.ajax({
                type:"get",
                url:"findAreaServlet?id="+$("#city").val(),
                dataType:"json",
                success:function (data) {
                    var obj = $("#distric");
                    for (var i = 0;i<data.length;i++) {
                        var ob = "<option value='"+data[i].aid+"'>"+data[i].aname+"</option>";
                        obj.append(ob);
                    }
                }
            });
        });
    });

</script>

</body>
</html>

 

该项目使用的jar如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值