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

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


 public
		 
		class
		 SpringJDBCDAO 
		
		
		
				{
		public
		 
		class
		 SpringJDBCDAO 
		
		
		
				{


 private
				 
				class
				 PersonRowMapper implements RowMapper 
				
				
				
						{
    
				private
				 
				class
				 PersonRowMapper implements RowMapper 
				
				
				
						{

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


 public
				 
				void
				 processStoredProcedure() 
				
				
				
						{
    
				public
				 
				void
				 processStoredProcedure() 
				
				
				
						{

 CallableStatementCallback cb 
						=
						 
						new
						 CallableStatementCallback() 
						
						
						
								{
        CallableStatementCallback cb 
						=
						 
						new
						 CallableStatementCallback() 
						
						
						
								{
 public
								 Object doInCallableStatement(CallableStatement cs)
            
								public
								 Object doInCallableStatement(CallableStatement cs)

 throws SQLException 
								
								
								
										{
                    throws SQLException 
								
								
								
										{
 cs.execute();
                cs.execute();
 return
										 
										null
										;
                
										return
										 
										null
										;
 }
            }
								
								
										
										 }
						
						;
        }
						
						;
 jdbcTemplate.execute(
						"
						{ ARCHIVE_STUDENTS }
						"
						, cb);
        jdbcTemplate.execute(
						"
						{ ARCHIVE_STUDENTS }
						"
						, cb);
 }
    }
				
				
						
						 
						
						 
						 public
				 List getAllPersons() 
				
				
				
						{
    
				public
				 List getAllPersons() 
				
				
				
						{
 String sql 
						=
						 
						"
						select id, first_name, last_name from person
						"
						;
        String sql 
						=
						 
						"
						select id, first_name, last_name from person
						"
						;
 return
						 jdbcTemplate.query(sql, 
						new
						 RowMapperResultReader(
        
						return
						 jdbcTemplate.query(sql, 
						new
						 RowMapperResultReader(
 new
						 PersonRowMapper()));
                
						new
						 PersonRowMapper()));
 }
    }
				
				
						
						 
						
						 
						 public
				 String getLastNameForId(Integer id) 
				
				
				
						{
    
				public
				 String getLastNameForId(Integer id) 
				
				
				
						{
 String sql 
						=
						 
						"
						select last_name from person where id = ?
						"
						;
        String sql 
						=
						 
						"
						select last_name from person where id = ?
						"
						;

 return
						 (String) jdbcTemplate.queryForObject(sql, 
						new
						 Object[] 
						
						
						
								{ id }
						
						,
        
						return
						 (String) jdbcTemplate.queryForObject(sql, 
						new
						 Object[] 
						
						
						
								{ id }
						
						,
 String.
						class
						);
                String.
						class
						);
 }
    }
				
				
						
						 
						
						 
						 public
				 
				int
				 getNumberOfPersons() 
				
				
				
						{
    
				public
				 
				int
				 getNumberOfPersons() 
				
				
				
						{
 return
						 jdbcTemplate.queryForInt(
						"
						select count(*) from person
						"
						);
        
						return
						 jdbcTemplate.queryForInt(
						"
						select count(*) from person
						"
						);
 }
    }
				
				
						
						 
						
						 
						 public
				 Person getPerson1(final Integer id) 
				
				
				
						{
    
				public
				 Person getPerson1(final Integer id) 
				
				
				
						{
 String sql 
						=
						 
						"
						select id, first_name, last_name from person  where id = ?
						"
						;
        String sql 
						=
						 
						"
						select id, first_name, last_name from person  where id = ?
						"
						;
 final Person person 
						=
						 
						new
						 Person();
        final Person person 
						=
						 
						new
						 Person();

 final Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ id }
						
						;
        final Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ id }
						
						;

 jdbcTemplate.query(sql, 
						params
						, 
						new
						 RowCallbackHandler() 
						
						
						
								{
        jdbcTemplate.query(sql, 
						params
						, 
						new
						 RowCallbackHandler() 
						
						
						
								{

 public
								 
								void
								 processRow(ResultSet rs) throws SQLException 
								
								
								
										{
            
								public
								 
								void
								 processRow(ResultSet rs) throws SQLException 
								
								
								
										{
 person.setId(
										new
										 Integer(rs.getInt(
										"
										id
										"
										)));
                person.setId(
										new
										 Integer(rs.getInt(
										"
										id
										"
										)));
 person.setFirstName(rs.getString(
										"
										first_name
										"
										));
                person.setFirstName(rs.getString(
										"
										first_name
										"
										));
 person.setFirstName(rs.getString(
										"
										last_name
										"
										));
                person.setFirstName(rs.getString(
										"
										last_name
										"
										));
 }
            }
								
								
										
										 }
						
						);
        }
						
						);
 return
						 person;
        
						return
						 person;
 }
    }
				
				
						
						 
						
						 
						 public
				 Person getPerson2(final Integer id) 
				
				
				
						{
    
				public
				 Person getPerson2(final Integer id) 
				
				
				
						{
 String sql 
						=
						 
						"
						select id, first_name, last_name from person  where id = ?
						"
						;
        String sql 
						=
						 
						"
						select id, first_name, last_name from person  where id = ?
						"
						;
 final Person person 
						=
						 
						new
						 Person();
        final Person person 
						=
						 
						new
						 Person();

 final Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ id }
						
						;
        final Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ id }
						
						;
 List list 
						=
						 jdbcTemplate.query(sql, 
						params
						, 
						new
						 RowMapperResultReader(
        List list 
						=
						 jdbcTemplate.query(sql, 
						params
						, 
						new
						 RowMapperResultReader(
 new
						 PersonRowMapper()));
                
						new
						 PersonRowMapper()));
 return
						 (Person) list.
						get
						(
						0
						);
        
						return
						 (Person) list.
						get
						(
						0
						);
 }
    }
				
				
						
						 
						
						 
						 public
				 
				int
				 insertPerson(Person person) 
				
				
				
						{
    
				public
				 
				int
				 insertPerson(Person person) 
				
				
				
						{
 String sql 
						=
						 
						"
						insert into person (id, firstName, lastName)  values (?, ?, ?)
						"
						;
        String sql 
						=
						 
						"
						insert into person (id, firstName, lastName)  values (?, ?, ?)
						"
						;

 Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ person.getId(), person.getFirstName(),
        Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ person.getId(), person.getFirstName(),
 person.getFirstName() }
						
						;
                person.getFirstName() }
						
						;

 int
						[] types 
						=
						 
						new
						 
						int
						[] 
						
						
						
								{ Types.INTEGER, Types.VARCHAR, Types.VARCHAR }
						
						;
        
						int
						[] types 
						=
						 
						new
						 
						int
						[] 
						
						
						
								{ Types.INTEGER, Types.VARCHAR, Types.VARCHAR }
						
						;
 JdbcTemplate jdbcTemplate 
						=
						 
						null
						;
        JdbcTemplate jdbcTemplate 
						=
						 
						null
						;
 return
						 jdbcTemplate.update(sql, 
						params
						, types);
        
						return
						 jdbcTemplate.update(sql, 
						params
						, types);
 }
    }
				
				
						
						 
						
						 
						 public
				 
				int
				[] updatePersons(final List persons) 
				
				
				
						{
    
				public
				 
				int
				[] updatePersons(final List persons) 
				
				
				
						{
 String sql 
						=
						 
						"
						insert into person (id, firstName, lastName) values (?, ?, ?)
						"
						;
        String sql 
						=
						 
						"
						insert into person (id, firstName, lastName) values (?, ?, ?)
						"
						;
 BatchPreparedStatementSetter setter 
						=
						 
						null
						;
        BatchPreparedStatementSetter setter 
						=
						 
						null
						;

 setter 
						=
						 
						new
						 BatchPreparedStatementSetter() 
						
						
						
								{
        setter 
						=
						 
						new
						 BatchPreparedStatementSetter() 
						
						
						
								{

 public
								 
								int
								 getBatchSize() 
								
								
								
										{
            
								public
								 
								int
								 getBatchSize() 
								
								
								
										{
 return
										 persons.size();
                
										return
										 persons.size();
 }
            }
								
								
										
										 
										
										 public
								 
								void
								 setValues(PreparedStatement ps, 
								int
								 index)
            
								public
								 
								void
								 setValues(PreparedStatement ps, 
								int
								 index)

 throws SQLException 
								
								
								
										{
                    throws SQLException 
								
								
								
										{
 Person person 
										=
										 (Person) persons.
										get
										(index);
                Person person 
										=
										 (Person) persons.
										get
										(index);
 ps.setInt(
										0
										, person.getId().intValue());
                ps.setInt(
										0
										, person.getId().intValue());
 ps.setString(
										1
										, person.getFirstName());
                ps.setString(
										1
										, person.getFirstName());
 ps.setString(
										2
										, person.getLastName());
                ps.setString(
										2
										, person.getLastName());
 }
            }
								
								
										
										 }
						
						;
        }
						
						;
 return
						 jdbcTemplate.batchUpdate(sql, setter);
        
						return
						 jdbcTemplate.batchUpdate(sql, setter);
 }
    }
				
				
						
						 }
}
		
		
				
				 ============
		
		============
		
				
				 
				
				 import java.sql.ResultSet;
import java.sql.ResultSet;
 import java.sql.SQLException;
import java.sql.SQLException;
 import java.sql.Types;
import java.sql.Types;

 import javax.sql.DataSource;
import javax.sql.DataSource;

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


 public
		 
		class
		 SpringJDBCDAOWithObject 
		
		
		
				{
		public
		 
		class
		 SpringJDBCDAOWithObject 
		
		
		
				{

 class
				 InsertPerson extends SqlUpdate 
				
				
				
						{
    
				class
				 InsertPerson extends SqlUpdate 
				
				
				
						{

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

 Object[] 
								params
								 
								=
								 
								new
								 Object[] 
								
								
								
										{ person.getId(),
            Object[] 
								params
								 
								=
								 
								new
								 Object[] 
								
								
								
										{ person.getId(),
 person.getFirstName(), person.getLastName() }
								
								;
                    person.getFirstName(), person.getLastName() }
								
								;
 return
								 update(
								params
								);
            
								return
								 update(
								params
								);
 }
        }
						
						
								
								 }
    }
				
				
						
						 
						
						 
						 private
				 
				class
				 PersonByIdQuery extends MappingSqlQuery 
				
				
				
						{
    
				private
				 
				class
				 PersonByIdQuery extends MappingSqlQuery 
				
				
				
						{

 public
						 PersonByIdQuery(DataSource ds) 
						
						
						
								{
        
						public
						 PersonByIdQuery(DataSource ds) 
						
						
						
								{
 super(ds, 
								"
								select id, first_name, last_name from person 
								"
            super(ds, 
								"
								select id, first_name, last_name from person 
								"
								
										
										 +
								 
								"
								where id = ?
								"
								);
                    
								+
								 
								"
								where id = ?
								"
								);
 declareParameter(
								new
								 SqlParameter(
								"
								id
								"
								, Types.INTEGER));
            declareParameter(
								new
								 SqlParameter(
								"
								id
								"
								, Types.INTEGER));
 compile();
            compile();
 }
        }
						
						
								
								 
								
								 
								 public
						 Object mapRow(ResultSet rs, 
						int
						 rowNumber) throws SQLException 
						
						
						
								{
        
						public
						 Object mapRow(ResultSet rs, 
						int
						 rowNumber) throws SQLException 
						
						
						
								{
 Person person 
								=
								 
								new
								 Person();
            Person person 
								=
								 
								new
								 Person();
 person.setId((Integer) rs.getObject(
								"
								id
								"
								));
            person.setId((Integer) rs.getObject(
								"
								id
								"
								));
 person.setFirstName(rs.getString(
								"
								first_name
								"
								));
            person.setFirstName(rs.getString(
								"
								first_name
								"
								));
 person.setLastName(rs.getString(
								"
								last_name
								"
								));
            person.setLastName(rs.getString(
								"
								last_name
								"
								));
 return
								 person;
            
								return
								 person;
 }
        }
						
						
								
								 }
    }
				
				
						
						 
						
						 private
				 InsertPerson insertPerson;
    
				private
				 InsertPerson insertPerson;
 
    
 private
				 PersonByIdQuery personByIdQuery;
    
				private
				 PersonByIdQuery personByIdQuery;
 
  

 public
				 Person getPerson(Integer id) 
				
				
				
						{
    
				public
				 Person getPerson(Integer id) 
				
				
				
						{

 Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ id }
						
						;
    Object[] 
						params
						 
						=
						 
						new
						 Object[] 
						
						
						
								{ id }
						
						;
 return
						 (Person) personByIdQuery.execute(
						params
						).
						get
						(
						0
						);
    
						return
						 (Person) personByIdQuery.execute(
						params
						).
						get
						(
						0
						);
 }
    }
				
				
						
						 
						
						 
						 public
				 
				int
				 insertPerson(Person person) 
				
				
				
						{
    
				public
				 
				int
				 insertPerson(Person person) 
				
				
				
						{
 return
						 insertPerson.insert(person);
        
						return
						 insertPerson.insert(person);
 }
    }
				
				
						
						 }
}
		
		
				
		
	posted on 2006-05-01 23:59 
船长 阅读(734) 
评论(0)  编辑  收藏