首先我们需要先建立好数据库,将一些数据插入进去
省:省份表
城市:城市表
<>强如图:强>
然后再在java中建立相关的实体类与之对应
再然后,我们就能开始做jdbc的操作了
公开课ConnectionFactory { 私有静态字符串司机; 私有静态url字符串; 私有静态字符串的用户; 私有静态字符串密码; 静态{ 属性道具=new属性();//读取文件 尝试{ InputStream的=ConnectionFactory.class.getResourceAsStream (“。/jdbc.properties”); prop.load(的); 司机=prop.getProperty (“jdbc.driver”); url=prop.getProperty (“jdbc.url”); 用户=prop.getProperty (“jdbc.user”); 密码=prop.getProperty (“jdbc.password”); }捕捉(IOException e) { e.printStackTrace (); } }/* * *获取连接对象 * @return */公共静态连接getConnection () { 连接康涅狄格州=零; 尝试{ forname(司机); 康涅狄格州=DriverManager。getConnection (url、用户密码); }捕捉(异常e) { 把新的RuntimeException (e); } 返回康涅狄格州; }/* * *关闭资源 * @param康涅狄格州 * @param pstmt * @param支撑 * @param rs */公共静态空间关闭(连接康涅狄格州、PreparedStatement pstmt声明支撑,ResultSet rs) { 尝试{ 如果(康涅狄格州!=null) { conn.close (); } 如果(pstmt !=null) { pstmt.close (); } 如果(支撑!=null) { stmt.close (); } 如果(rs !=null) { rs.close (); } }捕捉(SQLException e) { 把新的RuntimeException (e); } } >之前首先我们可以在页面加载的时候获取所有省份的信息,SQL语句如下
连接康涅狄格州=零; PreparedStatement pstmt=零; 省province2=零; @Override 公共ArrayListfindAllPro () { ResultSet rs=零; ArrayList 利=零; 尝试{ 字符串sql=把≡駃d,从省”; 康涅狄格州=ConnectionFactory.getConnection (); pstmt=conn.prepareStatement (sql); 利=new ArrayList (); rs=pstmt.executeQuery (); 而(rs.next ()) { 省?new省(); province.setId (rs.getInt (1)); province.setPlace (rs.getString (2)); pros.add(省); } }捕捉(SQLException e) { 把新的RuntimeException (e); } 返回优点; } 将查到的数据放到后台,建立一个SelectedServlet类,用于接收查询到的所有省份的信息
response.setContentType (“application/json; charset=utf - 8”); response.setCharacterEncoding (“utf - 8”); request.setCharacterEncoding(“utf - 8”);//创建一个地方对象 ArrayList.findAllPro优点=新地方()(); PrintWriter=response.getWriter ();//将集合直接转换为Json对象 out.write (JSONArray.fromObject(优点).toString ());>之前 在这里会用到集合转换Json对象,我们需要导入以下几个包
然后我们开始写前台页面:
& lt; body> 省份:& lt;选择id=笆 北? & lt; option>——请选择省份——& lt;/option> & lt;/select> 城市:& lt;选择id=俺鞘小北? & lt; option>——请选择城市——& lt;/option> & lt;/select> & lt; br/祝辞& lt; br/比; & lt; span> & lt;/span> & lt;/body>>之前然后jQuery代码如下:(由于我导入的jQuery版本比较低,所以使用的方法是getJSON,而不是getJSON)
.getJSON美元(“SelectedServlet”功能(数据、textStatus) { var=省份数据; var res=" "; 我(var=0; i< provinces.length;我+ +){ & lt;跨度比;& lt;/span> res +=& lt; option>“+省[我].place +“& lt;/option>”; } $(" #省”).append (res); });使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例