jinfeng_wang

G-G-S,D-D-U!

BlogJava 首页 新随笔 联系 聚合 管理
  400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

 


import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;

import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.RowMapperResultReader;

public class SpringJDBCDAO {

    
private class PersonRowMapper implements RowMapper {
        
public Object mapRow(ResultSet rs, int index) throws SQLException {
            Person person 
= new Person();
            person.setId(
new Integer(rs.getInt("id")));
            person.setFirstName(rs.getString(
"first_name"));
            person.setLastName(rs.getString(
"last_name"));
            
return person;
        }

    }


    
private JdbcTemplate jdbcTemplate;

    
public void processStoredProcedure() {
        CallableStatementCallback cb 
= new CallableStatementCallback() {
            
public Object doInCallableStatement(CallableStatement cs)
                    throws SQLException 
{
                cs.execute();
                
return null;
            }

        }
;
        jdbcTemplate.execute(
"{ ARCHIVE_STUDENTS }", cb);
    }


    
public List getAllPersons() {
        String sql 
= "select id, first_name, last_name from person";
        
return jdbcTemplate.query(sql, new RowMapperResultReader(
                
new PersonRowMapper()));
    }


    
public String getLastNameForId(Integer id) {
        String sql 
= "select last_name from person where id = ?";
        
return (String) jdbcTemplate.queryForObject(sql, new Object[] { id },
                String.
class);
    }


    
public int getNumberOfPersons() {
        
return jdbcTemplate.queryForInt("select count(*) from person");
    }


    
public Person getPerson1(final Integer id) {
        String sql 
= "select id, first_name, last_name from person  where id = ?";
        final Person person 
= new Person();
        final Object[] 
params = new Object[] { id };
        jdbcTemplate.query(sql, 
paramsnew RowCallbackHandler() {
            
public void processRow(ResultSet rs) throws SQLException {
                person.setId(
new Integer(rs.getInt("id")));
                person.setFirstName(rs.getString(
"first_name"));
                person.setFirstName(rs.getString(
"last_name"));
            }

        }
);
        
return person;
    }


    
public Person getPerson2(final Integer id) {
        String sql 
= "select id, first_name, last_name from person  where id = ?";
        final Person person 
= new Person();
        final Object[] 
params = new Object[] { id };
        List list 
= jdbcTemplate.query(sql, paramsnew RowMapperResultReader(
                
new PersonRowMapper()));
        
return (Person) list.get(0);
    }


    
public int insertPerson(Person person) {
        String sql 
= "insert into person (id, firstName, lastName)  values (?, ?, ?)";
        Object[] 
params = new Object[] { person.getId(), person.getFirstName(),
                person.getFirstName() }
;
        
int[] types = new int[] { Types.INTEGER, Types.VARCHAR, Types.VARCHAR };
        JdbcTemplate jdbcTemplate 
= null;
        
return jdbcTemplate.update(sql, params, types);
    }


    
public int[] updatePersons(final List persons) {
        String sql 
= "insert into person (id, firstName, lastName) values (?, ?, ?)";
        BatchPreparedStatementSetter setter 
= null;
        setter 
= new BatchPreparedStatementSetter() {
            
public int getBatchSize() {
                
return persons.size();
            }


            
public void setValues(PreparedStatement ps, int index)
                    throws SQLException 
{
                Person person 
= (Person) persons.get(index);
                ps.setInt(
0, person.getId().intValue());
                ps.setString(
1, person.getFirstName());
                ps.setString(
2, person.getLastName());
            }

        }
;
        
return jdbcTemplate.batchUpdate(sql, setter);
    }

}

============

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

import javax.sql.DataSource;

import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.
object.MappingSqlQuery;
import org.springframework.jdbc.
object.SqlUpdate;

public class SpringJDBCDAOWithObject {
    
class InsertPerson extends SqlUpdate {
        
public InsertPerson(DataSource ds) {
            setDataSource(ds);
            setSql(
"insert into person (id, firstName, lastName) values (?, ?, ?)");
            declareParameter(
new SqlParameter(Types.NUMERIC));
            declareParameter(
new SqlParameter(Types.VARCHAR));
            declareParameter(
new SqlParameter(Types.VARCHAR));
            compile();
        }


        
public int insert(Person person) {
            Object[] 
params = new Object[] { person.getId(),
                    person.getFirstName(), person.getLastName() }
;
            
return update(params);
        }

    }


    
private class PersonByIdQuery extends MappingSqlQuery {
        
public PersonByIdQuery(DataSource ds) {
            super(ds, 
"select id, first_name, last_name from person "
                    
+ "where id = ?");
            declareParameter(
new SqlParameter("id", Types.INTEGER));
            compile();
        }


        
public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {
            Person person 
= new Person();
            person.setId((Integer) rs.getObject(
"id"));
            person.setFirstName(rs.getString(
"first_name"));
            person.setLastName(rs.getString(
"last_name"));
            
return person;
        }

    }


    
private InsertPerson insertPerson;
    
    
private PersonByIdQuery personByIdQuery;
  
    
public Person getPerson(Integer id) {
    Object[] 
params = new Object[] { id };
    
return (Person) personByIdQuery.execute(params).get(0);
    }


    
public int insertPerson(Person person) {
        
return insertPerson.insert(person);
    }

}

posted on 2005-03-03 14:40 jinfeng_wang 阅读(6218) 评论(3)  编辑  收藏 所属分类: spring

评论

# re: Spring JDBC DAO的两个example 2005-07-11 15:21 as
asdf

  回复  更多评论
  

# re: Spring JDBC DAO的两个example 2006-11-10 14:22 aa
好。  回复  更多评论
  

# re: Spring JDBC DAO的两个example 2007-09-08 13:27 aaa
public List getAllPersons() {
String sql = "select id, first_name, last_name from person";
return jdbcTemplate.query(sql, new RowMapperResultReader(
new PersonRowMapper()));
}

大哥你的这个方法不对吧?这里应该是返回void类型,怎么会返回List呢?
我现在也在使用这个做项目,但是我做这个的时候就迷茫了,为什么网上的资料都这样,千篇一律.下面是我的代码.为什么我的就不行??
List ticketList = null;
ticketList = this.getJdbcTemplate().query(sql, new RowMapperResultReader(new AnteTicketMapper()));
return ticketList;  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: