- 实现一、在内部建立内联类实现<SPANclass=hilite1>RowMapper</SPAN>接口
- packagehysteria.contact.dao.impl;
- importjava.sql.ResultSet;
- importjava.sql.SQLException;
- importjava.sql.Types;
- importjava.util.List;
- importorg.springframework.jdbc.core.JdbcTemplate;
- importorg.springframework.jdbc.core.<SPANclass=hilite1>RowMapper</SPAN>;
- importhysteria.contact.dao.ItemDAO;
- importhysteria.contact.domain.Item;
- publicclassItemDAOImplimplementsItemDAO {
- privateJdbcTemplate jdbcTemplate;
- publicvoidsetJdbcTemplate(JdbcTemplate jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
- publicItem insert(Item item) {
- String sql ="INSERT INTO items(user_id,name,phone,email) VALUES(?,?,?,?)";
- Object[] params =newObject[]{item.getUserId(),item.getName(),item.getPhone(),item.getEmail()};
- int[] types =newint[]{Types.INTEGER,Types.VARCHAR,Types.CHAR,Types.VARCHAR};
- jdbcTemplate.update(sql,params,types);
- returnitem;
- }
- publicItem update(Item item) {
- String sql ="UPDATE items SET name = ?, phone = ?, email = ? WHERE id = ?";
- Object[] params =newObject[] {item.getName(),item.getPhone(),item.getEmail(),item.getId()};
- int[] types =newint[] {Types.VARCHAR,Types.CHAR,Types.VARCHAR,Types.VARCHAR,Types.INTEGER};
- jdbcTemplate.update(sql,params,types);
- returnitem;
- }
- publicvoiddelete(Item item) {
- String sql ="DELETE FROM items WHERE id = ?";
- Object[] params =newObject[] {item.getId()};
- int[] types =newint[]{Types.INTEGER};
- jdbcTemplate.update(sql,params,types);
- }
- publicItem findById(intid) {
- String sql ="SELECT * FROM items WHERE id = ?";
- Object[] params =newObject[] {id};
- int[] types =newint[] {Types.INTEGER};
- List items = jdbcTemplate.query(sql,params,types,newItemMapper());
- if(items.isEmpty()){
- returnnull;
- }
- return(Item)items.get(0);
- }
- publicList<Item> findAll() {
- String sql ="SELECT * FROM items";
- returnjdbcTemplate.query(sql,newItemMapper());
- }
- publicList<Item> findAllByUser(intuser_id) {
- String sql ="SELECT * FROM items WHERE user_id = ?";
- Object[] params =newObject[]{user_id};
- int[] types =newint[]{Types.INTEGER};
- List items = jdbcTemplate.query(sql,params,types,newItemMapper());
- returnitems;
- }
- protectedclassItemMapperimplements<SPANclass=hilite1>RowMapper</SPAN> {
- publicObject mapRow(ResultSet rs,introwNum)throwsSQLException {
- Item item =newItem();
- item.setId(rs.getInt("id"));
- item.setUserId(rs.getInt("user_id"));
- item.setName(rs.getString("name"));
- item.setPhone(rs.getString("phone"));
- item.setEmail(rs.getString("email"));
- returnitem;
- }
- }
- }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二个案例
package com.flmusic.cu.dao.jdbc;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.PreparedStatementCallback;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import com.flmusic.cu.compere.CompereInfoBean;
import com.flmusic.cu.dao.CommendCompereDAO;
public class CommendCompereDAOJdbcImpl extends JdbcDaoSupport implements CommendCompereDAO{
/**
* 新增推荐主持人 状态:0--未审核;1--审核
* @param userId
*/
public void addCommendCompere(final Integer userId){
StringBuffer sql = new StringBuffer(200);
//新增推荐主持人
sql.append("insert into u_commend_compere_info(I64UserID,status) values(?,0)");
this.getJdbcTemplate().execute(sql.toString(),new PreparedStatementCallback(){
public Object doInPreparedStatement(PreparedStatement ps)throws SQLException {
ps.setInt(1, userId);
ps.execute();
return null;
}
});
//更新推荐状态--已推荐(1)
updateCommendFlag(userId,1);
}
/**
* 查询推荐主持人列表
* @return
*/
public List findCommendCompereList(Integer agentId){
StringBuffer sql = new StringBuffer(200);
sql.append("select uc.compereName,uc.ilevel,com.I64UserID,com.status,a.agentName ");
sql.append(" from u_commend_compere_info com ,u_compere_info uc left join webcu.dbo.agent a on uc.agentId=a.agentId ");
sql.append("where com.I64UserID = uc.I64UserID ");
if (agentId != null){
sql.append(" and uc.agentId=").append(agentId);
}
List<CompereInfoBean> list = this.getJdbcTemplate().query(sql.toString(), new RowMapper(){
public Object mapRow(ResultSet rs,int index) throws SQLException{
CompereInfoBean bean = new CompereInfoBean();
bean.setUserId(rs.getInt("I64UserID"));
bean.setCompereName(rs.getString("compereName"));
bean.setLevel(rs.getInt("ilevel"));
bean.setCommendStatus(rs.getInt("status"));
bean.setAgentName(rs.getString("agentName"));
return bean;
}
});
return list;
}
/**
* 更新推荐状态
* @param userId
* @param flag
*/
private void updateCommendFlag(final Integer userId,final int flag){
//更新主持人的是否推荐状态
StringBuffer sql = new StringBuffer(200);
sql.append("update u_compere_info set commendFlag=? where I64UserID=?");
this.getJdbcTemplate().execute(sql.toString(),new PreparedStatementCallback(){
public Object doInPreparedStatement(PreparedStatement ps)throws SQLException {
ps.setInt(1, flag);
ps.setInt(2, userId);
ps.execute();
return null;
}
});
}
/**
* 根据室主Id查询主持人对象列表
*
*
*/
public List findCommendCompereListByHostId(Integer hostId) {
// TODO Auto-generated method stub
StringBuffer sql = new StringBuffer(200);
sql.append("select a.I64UserID,a.compereName,a.iLevel from flMusicUserDB.dbo.u_compere_info a ");
sql.append(" where a.compereNumber in (select compereNumber from RoomDB.dbo.Host_Compere_Mapping where hostNumber="+hostId+") ");
List<CompereInfoBean> list = this.getJdbcTemplate().query(sql.toString(), new RowMapper(){
public Object mapRow(ResultSet rs,int index) throws SQLException{
CompereInfoBean bean = new CompereInfoBean();
bean.setUserId(rs.getInt("I64UserID"));
bean.setCompereName(rs.getString("compereName"));
bean.setLevel(rs.getInt("ilevel"));
return bean;
}
});
return list;
}}