标签:imp for template app 语句 ems etc bsp 2.3
1.使用的技术:JSP,Spring JDBC(Mapper)
2.代码
2.1 接口
public interface IMeetingRoomDao { public List<Mrcap> selectCap(); public List<Mrfloor> selectFloor(); }
2.2 实现类
@Override public List<Mrcap> selectCap() { List<Mrcap> caplist = new ArrayList<Mrcap>(); //sql语句中不能在一个语句中查两个字段的distinct值,查一个字段,需要单独建立该字段的mapper String sql = "select distinct capacity from meetingroom"; caplist = jt.query(sql,new CapMapper()); return caplist; } @Override public List<Mrfloor> selectFloor() { List<Mrfloor> floorlist = new ArrayList<Mrfloor>(); String sql = "select distinct floor from meetingroom"; floorlist = jt.query(sql,new FloorMapper()); return floorlist; }
注:范型中的Mrcap与Mrfloor为单独新建的bean类,类中只有一个私有属性(cap/floor),因此在使用spring JDBC时需要新建对应的Mapper。
2.3 CapMapper
public class CapMapper implements RowMapper<Mrcap>{ @Override public Mrcap mapRow(ResultSet rs, int rownum) throws SQLException { Mrcap mrc = new Mrcap(); mrc.setCapacity(rs.getInt("capacity")); return mrc; } }
2.4 FloorMapper同CapMapper,不予代码展示
2.5 因为实现类的存在,必须向Spring的配置文件中加入<bean></bean>标签
<bean id="MeetingRoomDao" class="com.dao.MeetingRoomDao">
<property name="dataSource" ref="datasource" />
</bean>
其中MeetingRoomDao中要有如下代码用来映射datasource:
private DataSource datasource; private JdbcTemplate jt; public void setDataSource(DataSource ds){ this.datasource = ds; this.jt = new JdbcTemplate(datasource); }
至此,下拉框要填充的内容读取完毕,并分别放入caplist与floorlist中等待放入下拉框,放入下拉框时使用EL表达式>>>
容量: <select name="capacity" id="capacity"> <option value="">--请选择--</option> <c:forEach items="${caplist}" var="cap"> <option value="${cap.capacity}"><c:out value="${cap.capacity}"></c:out></option> </c:forEach> </select> 所在楼层: <select name="floor" id="floor"> <option value="">--请选择--</option> <c:forEach items="${floorlist}" var="floor"> <option value="${floor.floor}"><c:out value="${floor.floor}"></c:out></option> </c:forEach> </select>
总结:
数据库中capacity与floor字段的值皆有重复,使用SQL语句查询时,无法在一个语句中查出两个字段的不重复值,故分而置之,又由于使用了Spring JDBC框架,使用jt.query()方法进行查询时,需要新建两个bean类并新建对应的mapper映射,方可最终放入下拉框。
标签:imp for template app 语句 ems etc bsp 2.3
原文地址:http://www.cnblogs.com/jin-zhao/p/6371473.html