Struts2中标签从MySQL数据库中查询出数据实现二级联动

1.先在mysql建立两张表,一张城市表City,一张地区表Area:

Struts2中标签从MySQL数据库中查询出数据实现二级联动_第1张图片


2.写两个实体类:

City.java

package com.jmx.entity;

public class City {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public City(int id,String name) {
		this.id = id;
		this.name = name;
	}
	public City() {
		
	}
}

Area.java

package com.jmx.entity;

public class Area {
	private int id;
	private int cid;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getCid() {
		return cid;
	}
	public void setCid(int cid) {
		this.cid = cid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Area(int id,String name,int cid) {
		this.id = id;
		this.name = name;
		this.cid = cid;
	}
	public Area() {
		
	}
}

3.写一个Dao类:

Dao.java

public class Dao {
	/**
	 * 查询所有城市
	 * @throws ClassNotFoundException 
	 * */
	public List SelCity() throws SQLException, ClassNotFoundException{
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/emp","root","408817");
		PreparedStatement ps = null;
		ResultSet rs = null;
		List list = new ArrayList();
		String sql = "select * from City";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				City city = new City();
				city.setId(rs.getInt("id"));
				city.setName(rs.getString("name"));
				list.add(city);
			}
			conn.close();
			rs.close();
			ps.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	
	/**
	 * 查询所有的地区
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * */
	public List SelArea(int id) throws SQLException, ClassNotFoundException{
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/emp","root","408817");
		PreparedStatement ps = null;
		ResultSet rs = null;
		List list = new ArrayList();
		String sql = "select * from Area a join City c on a.cid=c.id where a.cid=?";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			rs = ps.executeQuery();
			while(rs.next()) {
				Area area = new Area();
				area.setCid(rs.getInt("id"));
				area.setName(rs.getString("name"));
				area.setCid(rs.getInt("cid"));
				list.add(area);
			}
			conn.close();
			rs.close();
			ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
		
	}

4.action类

DemoAction.java

public class DemoAction extends ActionSupport {
	private String user;
	private List citylist;
	private Map> areaMap;
	Dao dao = new Dao();

	@Override
	public String execute() throws Exception {
		citylist = dao.SelCity();
		areaMap = new HashMap>();
		List area = new ArrayList();
		for(int i=0;i getCitylist() {
		return citylist;
	}

	public void setCitylist(List citylist) {
		this.citylist = citylist;
	}

	public Map> getAreaMap() {
		return areaMap;
	}

	public void setAreaMap(Map> areaMap) {
		this.areaMap = areaMap;
	}
}

5.index.jsp

	
		
		
	

6.struts.xml

	
		
			/index.jsp
		
	

访问:

Struts2中标签从MySQL数据库中查询出数据实现二级联动_第2张图片

你可能感兴趣的:(struts2)