使用JDBC模板

JdbcTemplate:Spring里最基础的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问。并提供RowMapper实现半自动化数据库数据 bean的转化。 
NameParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是索引参数。 
SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用(generic)和可变参数列表来简化JDBC模板的使用。 

用一下: 
view plain copy to clipboard print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.   xmlns:jee="http://www.springframework.org/schema/jee"   
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  8.            http://www.springframework.org/schema/context  
  9.            http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  10.            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd   
  11.             http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd    
  12.             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
  13. <import resource="classpath:bean-jdbc.xml" />  
  14. <!--   
  15.   JdbcTemplate:Spring里最基础的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问。并提供RowMapper实现半自动化数据库数据 bean的转化。  
  16.   NameParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是索引参数。  
  17.   SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用(generic)和可变参数列表来简化JDBC模板的使用。  
  18.   -->  
  19. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
  20.   <property name="dataSource" ref="dataSource"></property>  
  21. </bean>  
  22.   
  23. <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">  
  24.   <constructor-arg ref="dataSource" />   
  25. </bean>  
  26.   
  27. <bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">  
  28.   <constructor-arg ref="dataSource" />   
  29. </bean>  
  30.   
  31. <bean id="helloJdbcTemplate" class="cn.partner4java.template.impl.HelloJdbcTemplateBean">  
  32.   <property name="jdbcTemplate" ref="jdbcTemplate"></property>  
  33. </bean>  
  34.   
  35. <bean id="helloNamedParameterJdbcTemplate" class="cn.partner4java.template.impl.HelloNamedParameterJdbcTemplateBean">  
  36.   <property name="namedParameterJdbcTemplate" ref="namedParameterJdbcTemplate"/>  
  37. </bean>  
  38.   
  39. <bean id="helloSimpleJdbcTemplate" class="cn.partner4java.template.impl.HelloSimpleJdbcTemplateBean">  
  40.   <property name="simpleJdbcTemplate" ref="simpleJdbcTemplate"/>  
  41. </bean>  
  42.   
  43. </beans>   
  44.   

--- 
"jdbcTemplate":
view plain copy to clipboard print ?
  1. package cn.partner4java.template;  
  2. import cn.partner4java.bean.User;  
  3. /** 
  4. * JdbcTemplate 测试 
  5. * @author wangchanglong 
  6. * 
  7. */  
  8. public interface HelloJdbcTemplate {  
  9. /** 
  10.   * 保存测试 
  11.   * @param user 
  12.   */  
  13. public void saveUser(User user);  
  14.   
  15. /** 
  16.   * 获取 
  17.   * @param id 索引 
  18.   * @return 
  19.   */  
  20. public User getUserById(int id);  
  21. }  
  22.   
  23.   
view plain copy to clipboard print ?
  1. package cn.partner4java.template.impl;  
  2. import java.sql.ResultSet;  
  3. import java.sql.SQLException;  
  4. import java.util.List;  
  5. import org.springframework.jdbc.core.JdbcTemplate;  
  6. import org.springframework.jdbc.core.RowMapper;  
  7. import cn.partner4java.bean.User;  
  8. import cn.partner4java.template.HelloJdbcTemplate;  
  9. /** 
  10. * JdbcTemplate 测试 
  11. * @author wangchanglong 
  12. * 
  13. */  
  14. public class HelloJdbcTemplateBean implements HelloJdbcTemplate {  
  15. private JdbcTemplate jdbcTemplate;  
  16. public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
  17.   this.jdbcTemplate = jdbcTemplate;  
  18. }  
  19. public User getUserById(int id) {  
  20.   List users = jdbcTemplate.query(USER_SELECT, new Object[]{id}, new RowMapper() {  
  21.    public Object mapRow(ResultSet rs, int rowNum) throws SQLException {  
  22.     User user = new User();  
  23.     user.setId(rs.getInt(1));  
  24.     user.setUsername(rs.getString(2));  
  25.     user.setPassword(rs.getString(3));  
  26.     return user;  
  27.    }  
  28.   }) ;  
  29.   return users.size() > 0 ? (User)users.get(0):null;  
  30. }  
  31. private static final String USER_SELECT = "select id,username,password from user where id = ?";  
  32.   
  33. public void saveUser(User user) {  
  34.   jdbcTemplate.update(USER_INSERT, new Object[] {user.getUsername(),user.getPassword()});  
  35. }  
  36.   
  37. private static final String USER_INSERT = "insert into user (username, password) values (?,?)";  
  38.   
  39. }  
view plain copy to clipboard print ?
  1. package cn.partner4java.template.junit;  
  2. import org.springframework.context.ApplicationContext;  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  4. import cn.partner4java.bean.User;  
  5. import cn.partner4java.template.HelloJdbcTemplate;  
  6. import junit.framework.TestCase;  
  7.   
  8. public class HelloJdbcTemplateBeanTest extends TestCase {  
  9. private HelloJdbcTemplate helloJdbcTemplate;  
  10.   
  11. @Override  
  12. protected void setUp() throws Exception {  
  13.   ApplicationContext ac = new ClassPathXmlApplicationContext("beans-jdbctemplate.xml");  
  14.   helloJdbcTemplate = (HelloJdbcTemplate) ac.getBean("helloJdbcTemplate");  
  15. }  
  16.   
  17. public void testSaveUser(){  
  18.   User user = new User();  
  19.   user.setUsername("心烦鸟");  
  20.   user.setPassword("123");  
  21.   helloJdbcTemplate.saveUser(user);  
  22. }  
  23.   
  24. public void testGetUserById(){  
  25.   System.out.println(helloJdbcTemplate.getUserById(1));  
  26. }  
  27.   
  28.   
  29. }  
  30.   

----- 
namedParameterJdbcTemplate: 
view plain copy to clipboard print ?
  1. package cn.partner4java.template;  
  2. import cn.partner4java.bean.User;  
  3. /** 
  4. * 测试 NamedParameterJdbcTemplate 
  5. * @author wangchanglong 
  6. * 
  7. */  
  8. public interface HelloNamedParameterJdbcTemplate {  
  9. public void saveUser(User user);  
  10. }  
  11.   
view plain copy to clipboard print ?
  1. package cn.partner4java.template.impl;  
  2. import java.util.HashMap;  
  3. import java.util.Map;  
  4. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;  
  5. import cn.partner4java.bean.User;  
  6. import cn.partner4java.template.HelloNamedParameterJdbcTemplate;  
  7. /** 
  8. * 测试 NamedParameterJdbcTemplate 
  9. * @author wangchanglong 
  10. * 
  11. */  
  12. public class HelloNamedParameterJdbcTemplateBean implements  
  13.   HelloNamedParameterJdbcTemplate {  
  14. private NamedParameterJdbcTemplate namedParameterJdbcTemplate;  
  15. public void setNamedParameterJdbcTemplate(  
  16.    NamedParameterJdbcTemplate namedParameterJdbcTemplate) {  
  17.   this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;  
  18. }  
  19. public void saveUser(User user) {  
  20.   Map parameters = new HashMap();  
  21.   parameters.put("username", user.getUsername());  
  22.   parameters.put("password", user.getPassword());  
  23.   namedParameterJdbcTemplate.update(USER_INERT, parameters);  
  24. }  
  25.   
  26. private static final String USER_INERT = "insert into user (username,password) values (:username, :password)";  
  27. }  
  28.   
view plain copy to clipboard print ?
  1. package cn.partner4java.template.junit;  
  2. import org.springframework.context.ApplicationContext;  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  4. import cn.partner4java.bean.User;  
  5. import cn.partner4java.template.HelloNamedParameterJdbcTemplate;  
  6. import junit.framework.TestCase;  
  7. public class HelloNamedParameterJdbcTemplateBeanTest extends TestCase {  
  8. private HelloNamedParameterJdbcTemplate helloNamedParameterJdbcTemplate;  
  9. @Override  
  10. protected void setUp() throws Exception {  
  11.   super.setUp();  
  12.   ApplicationContext ac = new ClassPathXmlApplicationContext("beans-jdbctemplate.xml");  
  13.   helloNamedParameterJdbcTemplate = (HelloNamedParameterJdbcTemplate) ac.getBean("helloNamedParameterJdbcTemplate");  
  14. }  
  15. public void testSaveUser(){  
  16.   User user = new User();  
  17.   user.setUsername("面霸");  
  18.   user.setPassword("123");  
  19.   helloNamedParameterJdbcTemplate.saveUser(user);  
  20. }  
  21.   
  22.   
  23. }  
  24.   

-------- 
simpleJdbcTemplate: 
view plain copy to clipboard print ?
  1. package cn.partner4java.template;  
  2. import cn.partner4java.bean.User;  
  3. /** 
  4. * 测试 simpleJdbcTemplate 
  5. * @author wangchanglong 
  6. * 
  7. */  
  8. public interface HelloSimpleJdbcTemplate {  
  9. public void saveUser(User user);  
  10. }  
  11.   
  12. package cn.partner4java.template.impl;  
  13. import java.util.HashMap;  
  14. import java.util.Map;  
  15. import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
  16. import cn.partner4java.bean.User;  
  17. import cn.partner4java.template.HelloSimpleJdbcTemplate;  
  18. /** 
  19. * 测试 simpleJdbcTemplate 
  20. * @author wangchanglong 
  21. * 
  22. */  
  23. public class HelloSimpleJdbcTemplateBean implements HelloSimpleJdbcTemplate {  
  24. private SimpleJdbcTemplate simpleJdbcTemplate;  
  25. public void setSimpleJdbcTemplate(SimpleJdbcTemplate simpleJdbcTemplate) {  
  26.   this.simpleJdbcTemplate = simpleJdbcTemplate;  
  27. }  
  28.   
  29. public void saveUser(User user) {  
  30.   Map parameters = new HashMap();  
  31.   parameters.put("username", user.getUsername());  
  32.   parameters.put("password", user.getPassword());  
  33.   //下面两种都可以  
  34.   simpleJdbcTemplate.update(USER_INERT, parameters);  
  35. //  simpleJdbcTemplate.update(USER_INSERT,  user.getUsername(), user.getPassword());  
  36. }  
  37.   
  38. private static final String USER_INERT = "insert into user (username,password) values (:username, :password)";  
  39. private static final String USER_INSERT = "insert into user (username, password) values (?,?)";  
  40. }  
  41.   
view plain copy to clipboard print ?
  1. package cn.partner4java.template.junit;  
  2. import org.springframework.context.ApplicationContext;  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  4. import cn.partner4java.bean.User;  
  5. import cn.partner4java.template.HelloSimpleJdbcTemplate;  
  6. import junit.framework.TestCase;  
  7.   
  8. public class HelloSimpleJdbcTemplateBeanTest extends TestCase {  
  9. private HelloSimpleJdbcTemplate helloSimpleJdbcTemplate;  
  10.   
  11. @Override  
  12. protected void setUp() throws Exception {  
  13.   ApplicationContext ac = new ClassPathXmlApplicationContext("beans-jdbctemplate.xml");  
  14.   helloSimpleJdbcTemplate = (HelloSimpleJdbcTemplate) ac.getBean("helloSimpleJdbcTemplate");  
  15. }  
  16.   
  17. public void testSaveUser(){  
  18.   User user = new User();  
  19.   user.setUsername("心烦鸟");  
  20.   user.setPassword("123");  
  21.   helloSimpleJdbcTemplate.saveUser(user);  
  22. }  
  23.   
  24.   
  25.   
  26. }  
  27.   

---- 
用法大体上如上 
基本上就是Simple包含了,Name和Template,不过也不是所有的地方都可以用Simple哦 

你可能感兴趣的:(使用JDBC模板)