这个和上一篇文章是异曲同工之处,不过这个是基于javaWeb的servlet和轻量级jdbcTemplate对数据库的操作
数据库中的表:
结构目录:
1.Entit层
Province
public class Province {
public Integer pid;
public String pname;
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
}
City
public class City {
public Integer cid;
public String cname;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
District层
public class District {
public Integer dis;
public String dname;
public Integer getDis() {
return dis;
}
public void setDis(Integer dis) {
this.dis = dis;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
}
2.Dao.Iconnectionloading
public interface Iconnectionloading {
public List<Province> selectAll();
public List<City> selectByPid(Integer pid);
public List<District> selectByCid(Integer cid);
}
3.Dao.Impl.conectionloadingImpl
public class conectionloadingImpl implements Iconnectionloading {
public JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public List<Province> selectAll() {
System.out.println("SelectALll");
List<Province> provinceList=jdbcTemplate.query("select * from province",new BeanPropertyRowMapper<Province>(Province.class));
return provinceList;
}
@Override
public List<City> selectByPid(Integer pid) {
List<City> cityList=jdbcTemplate.query("select * from city where pid=?",new BeanPropertyRowMapper<City>(City.class),pid);
return cityList;
}
@Override
public List<District> selectByCid(Integer cid) {
List<District> districtList=jdbcTemplate.query("select * from district where cid=?",new BeanPropertyRowMapper<District>(District.class),cid);
return districtList;
}
}
4.spring.xml文件的配置
使用轻量级jdbcTemplate,
<bean id="iconnectionloading" class="Dao.DaoImpl.conectionloadingImpl">
<property name="jdbcTemplate" ref="JdbcTemplate"></property>
</bean>
<bean id="JdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="datasource"/>
</bean>
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/ssm"></property>
<property name="password" value="123"></property>
<property name="username" value="root"></property>
</bean>
5.index.jsp
<head>
<title>Title</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
$(function () {
LoadProvince();
$("#province").change(function () {
LoadCity($(this).val());
})
$("#city").change(function () {
LoadDistrict($(this).val());
})
})
function LoadProvince() {
$("#province").empty();
$.getJSON("LoadingServlet",{action:"province"},function (data) {
$.each(data,function (index,item) {
$("#province").append("<option value="+item.pid+">"+item.pname+"</option>");
})
LoadCity($("#province").val())
})
}
function LoadCity(id) {
$("#city").empty();
$.getJSON("LoadingServlet",{action:"city",pid:id},function (data) {
$.each(data,function (index,item) {
$("#city").append("<option value="+item.cid+">"+item.cname+"</option>");
})
LoadDistrict($("#city").val())
})
}
function LoadDistrict(id) {
$("#district").empty();
$.getJSON("LoadingServlet",{action:"district",cid:id},function (data) {
$.each(data,function (index,item) {
$("#district").append("<option value="+item.did+">"+item.dname+"</option>");
})
})
}
</script>
</head>
<body>
请选择省:<select id="province"></select>
请选择市:<select id="city"></select>
请选择县:<select id="district"></select>
</body>
6.MyServlet.LoadingServlet
public class LoadingServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行了doGet");
String action=request.getParameter("action");
JSONObject jsonObject=new JSONObject();
BeanFactory beanFactory=new ClassPathXmlApplicationContext("spring.xml");
Iconnectionloading iconnectionloading= (Iconnectionloading) beanFactory.getBean("iconnectionloading");
if(action.equals("province")){
PrintWriter printWriter=response.getWriter();
List<Province> provinceList=iconnectionloading.selectAll();
jsonObject.put("provinceList",provinceList);
printWriter.print( jsonObject.get("provinceList"));
}
else if(action.equals("city")){
PrintWriter printWriter=response.getWriter();
Integer pid=Integer.parseInt(request.getParameter("pid"));
List<City> cityList=iconnectionloading.selectByPid(pid);
jsonObject.put("cityList",cityList);
printWriter.print( jsonObject.get("cityList"));
}
else if(action.equals("district")){
PrintWriter printWriter=response.getWriter();
Integer cid=Integer.parseInt(request.getParameter("cid"));
List<District> districtList=iconnectionloading.selectByCid(cid);
jsonObject.put("districtList",districtList);
printWriter.print( jsonObject.get("districtList"));
}
}
7.Web.xml文件的配置
<servlet>
<servlet-name>LoadingServlet</servlet-name>
<servlet-class>MyServlet.LoadingServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoadingServlet</servlet-name>
<url-pattern>/LoadingServlet</url-pattern>
</servlet-mapping>
8.结果显示: