1. dao层
使用org.springframework.jdbc.core.simple.ParameterizedRowMapper<Tt>
1.1 取得对象list
1.1.1 使用方法1
public class TtRowMapper implements ParameterizedRowMapper<Tt> { @Override public Tt mapRow(ResultSet rs, int arg1) throws SQLException { Tt bean = new Tt(); bean.setId(rs.getInt("id"));//设置属性 return bean; } }
List<Tt> list = simpleJdbcTemplate.query(sql.toString(), new TtRowMapper());
这样就可以重用TtRowMapper了,但要注意:sql查出的字段要与TtRowMapper设置的属性一致,否则报错1.1.2 使用方法2
List<Tt> list = simpleJdbcTemplate.query(sql.toString(), new ParameterizedRowMapper<Tt>(){ public PmcxView mapRow(ResultSet rs, int arg1) throws SQLException { PmcxView bean = new PmcxView(); bean.setId(rs.getInt("id")); //设置属性 return bean; } });
这种方法不能重用,每一个使用的地方都有设置一遍属性,但这样修改就不会影响到其他的
1.2.1 可以先取得list,再用
if(list.size()>0){ return list.get(0); }1.2.2 直接使用queryForObject
public <T> T queryForObject(String sql, Class<T> requiredType, SqlParameterSource args) throws DataAccessException
StringBuffer sql = new StringBuffer( "insert into pjxx(id, xmid, mc, fz, cjrid, cjrxm, cjrq, xgrq, zt, bz) "); sql.append(" values(pjxx_seq.nextval, :xmid, :mc, :fz, :cjrid, :cjrxm, :cjrq, null, :zt, :bz)"); SqlParameterSource sparams = new BeanPropertySqlParameterSource(pjxx); this.getNamedJdbcTemplate().update(sql.toString(), sparams);1.4 update
String sql = "update pjxx set xmid=?, mc=?, fz=?, cjrid=?, cjrxm=?, xgrq=?, zt=?, bz=? where id=?"; this.getJdbcTemplate().update(sql, new PreparedStatementSetter(){ @Override public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, pjxx.getXmid()); ps.setString(2, pjxx.getMc()); ps.setInt(3, pjxx.getFz()); ps.setInt(4, pjxx.getCjrid()); ps.setString(5, pjxx.getCjrxm()); ps.setDate(6, new java.sql.Date(System.currentTimeMillis())); ps.setInt(7, pjxx.getZt()); ps.setString(8, pjxx.getBz()); ps.setInt(9, pjxx.getId()); } } );这个也可以类似于取得list的方法,新建一个实现PreparedStatementSetter的类,方便重用
1.5 delete
可以直接通过id删除
this.getJdbcTemplate().execute("delete from pjxx where id="+id);
1.6 取得整型值
StringBuffer sql = new StringBuffer("SELECT count(0) FROM XS,(SELECT XS.BJ_ID from XS where XS.id = "); sql.append(xsid).append(" ) t where XS.BJ_ID = t.BJ_ID "); return this.getJdbcTemplateSlave().queryForInt(sql.toString());注意防止sql没有找到记录会抛异常
2. view层,及页面技术
2.1 freemarker 技术
2.1.1 list中格式化日期
<#list jpdhList as dh > <li class="clear"> <#assign date="${dh.dhrq!}"?date("yyyy-MM-dd")> <img style="width:35px;height:40px;" src="${dh.jptp!}" />${date} ${dh.xsxm!} 兑换了${dh.jpmc!} </li> </#list>
<#list rows as row> <tr valign="middle"> <td align="center" height="30"><input type="checkbox" name="jpId" value="${row.id}" /> ${row_index+1}</td> </tr> </#list>
<#list jpList as jp > <#if jp_index%6 = 0> <tr> </#if> <td align="center"> <img alt="${jp.jpmc!}" src="/wljf${jp.jptp!}" style="width:100px;height:80px;"><br /> 所需积分:${jp.dhjf!} <br /> <a href="#">兑换</a> </td> <#if jp_index%6 = 5> </tr> </#if> </#list>