项目开发经验总结-2012.12.24
程序员文章站
2022-07-03 15:40:51
...
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.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
1.3 save
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>
2.1.2 table全选技巧
<#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>
上一篇: Unity——初次漫游项目经验总结
下一篇: springboot实现日志追踪