JdbcTemplate:Spring里最基础的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问。并提供RowMapper实现半自动化数据库数据 bean的转化。 NameParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是索引参数。 SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用(generic)和可变参数列表来简化JDBC模板的使用。 用一下:
view plain
copy to clipboard
print
?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="http: http: http: http: http: http: http: <import resource="classpath:bean-jdbc.xml" /> <!-- JdbcTemplate:Spring里最基础的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问。并提供RowMapper实现半自动化数据库数据 bean的转化。 NameParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是索引参数。 SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用(generic)和可变参数列表来简化JDBC模板的使用。 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="dataSource" /> </bean> <bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate"> <constructor-arg ref="dataSource" /> </bean> <bean id="helloJdbcTemplate" class="cn.partner4java.template.impl.HelloJdbcTemplateBean"> <property name="jdbcTemplate" ref="jdbcTemplate"></property> </bean> <bean id="helloNamedParameterJdbcTemplate" class="cn.partner4java.template.impl.HelloNamedParameterJdbcTemplateBean"> <property name="namedParameterJdbcTemplate" ref="namedParameterJdbcTemplate"/> </bean> <bean id="helloSimpleJdbcTemplate" class="cn.partner4java.template.impl.HelloSimpleJdbcTemplateBean"> <property name="simpleJdbcTemplate" ref="simpleJdbcTemplate"/> </bean> </beans>
---
"jdbcTemplate":
view plain
copy to clipboard
print
?
package cn.partner4java.template; import cn.partner4java.bean.User; public interface HelloJdbcTemplate { public void saveUser(User user); public User getUserById(int id); }
view plain
copy to clipboard
print
?
package cn.partner4java.template.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import cn.partner4java.bean.User; import cn.partner4java.template.HelloJdbcTemplate; public class HelloJdbcTemplateBean implements HelloJdbcTemplate { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public User getUserById(int id) { List users = jdbcTemplate.query(USER_SELECT, new Object[]{id}, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { User user = new User(); user.setId(rs.getInt(1)); user.setUsername(rs.getString(2)); user.setPassword(rs.getString(3)); return user; } }) ; return users.size() > 0 ? (User)users.get(0):null; } private static final String USER_SELECT = "select id,username,password from user where id = ?"; public void saveUser(User user) { jdbcTemplate.update(USER_INSERT, new Object[] {user.getUsername(),user.getPassword()}); } private static final String USER_INSERT = "insert into user (username, password) values (?,?)"; }
view plain
copy to clipboard
print
?
package cn.partner4java.template.junit; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.partner4java.bean.User; import cn.partner4java.template.HelloJdbcTemplate; import junit.framework.TestCase; public class HelloJdbcTemplateBeanTest extends TestCase { private HelloJdbcTemplate helloJdbcTemplate; @Override protected void setUp() throws Exception { ApplicationContext ac = new ClassPathXmlApplicationContext("beans-jdbctemplate.xml"); helloJdbcTemplate = (HelloJdbcTemplate) ac.getBean("helloJdbcTemplate"); } public void testSaveUser(){ User user = new User(); user.setUsername("心烦鸟"); user.setPassword("123"); helloJdbcTemplate.saveUser(user); } public void testGetUserById(){ System.out.println(helloJdbcTemplate.getUserById(1)); } }
-----
namedParameterJdbcTemplate:
view plain
copy to clipboard
print
?
package cn.partner4java.template; import cn.partner4java.bean.User; public interface HelloNamedParameterJdbcTemplate { public void saveUser(User user); }
view plain
copy to clipboard
print
?
package cn.partner4java.template.impl; import java.util.HashMap; import java.util.Map; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import cn.partner4java.bean.User; import cn.partner4java.template.HelloNamedParameterJdbcTemplate; public class HelloNamedParameterJdbcTemplateBean implements HelloNamedParameterJdbcTemplate { private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void setNamedParameterJdbcTemplate( NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } public void saveUser(User user) { Map parameters = new HashMap(); parameters.put("username", user.getUsername()); parameters.put("password", user.getPassword()); namedParameterJdbcTemplate.update(USER_INERT, parameters); } private static final String USER_INERT = "insert into user (username,password) values (:username, :password)"; }
view plain
copy to clipboard
print
?
package cn.partner4java.template.junit; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.partner4java.bean.User; import cn.partner4java.template.HelloNamedParameterJdbcTemplate; import junit.framework.TestCase; public class HelloNamedParameterJdbcTemplateBeanTest extends TestCase { private HelloNamedParameterJdbcTemplate helloNamedParameterJdbcTemplate; @Override protected void setUp() throws Exception { super.setUp(); ApplicationContext ac = new ClassPathXmlApplicationContext("beans-jdbctemplate.xml"); helloNamedParameterJdbcTemplate = (HelloNamedParameterJdbcTemplate) ac.getBean("helloNamedParameterJdbcTemplate"); } public void testSaveUser(){ User user = new User(); user.setUsername("面霸"); user.setPassword("123"); helloNamedParameterJdbcTemplate.saveUser(user); } }
--------
simpleJdbcTemplate:
view plain
copy to clipboard
print
?
package cn.partner4java.template; import cn.partner4java.bean.User; public interface HelloSimpleJdbcTemplate { public void saveUser(User user); } package cn.partner4java.template.impl; import java.util.HashMap; import java.util.Map; import org.springframework.jdbc.core.simple.SimpleJdbcTemplate; import cn.partner4java.bean.User; import cn.partner4java.template.HelloSimpleJdbcTemplate; public class HelloSimpleJdbcTemplateBean implements HelloSimpleJdbcTemplate { private SimpleJdbcTemplate simpleJdbcTemplate; public void setSimpleJdbcTemplate(SimpleJdbcTemplate simpleJdbcTemplate) { this.simpleJdbcTemplate = simpleJdbcTemplate; } public void saveUser(User user) { Map parameters = new HashMap(); parameters.put("username", user.getUsername()); parameters.put("password", user.getPassword()); simpleJdbcTemplate.update(USER_INERT, parameters); } private static final String USER_INERT = "insert into user (username,password) values (:username, :password)"; private static final String USER_INSERT = "insert into user (username, password) values (?,?)"; }
view plain
copy to clipboard
print
?
package cn.partner4java.template.junit; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.partner4java.bean.User; import cn.partner4java.template.HelloSimpleJdbcTemplate; import junit.framework.TestCase; public class HelloSimpleJdbcTemplateBeanTest extends TestCase { private HelloSimpleJdbcTemplate helloSimpleJdbcTemplate; @Override protected void setUp() throws Exception { ApplicationContext ac = new ClassPathXmlApplicationContext("beans-jdbctemplate.xml"); helloSimpleJdbcTemplate = (HelloSimpleJdbcTemplate) ac.getBean("helloSimpleJdbcTemplate"); } public void testSaveUser(){ User user = new User(); user.setUsername("心烦鸟"); user.setPassword("123"); helloSimpleJdbcTemplate.saveUser(user); } }
----
用法大体上如上
基本上就是Simple包含了,Name和Template,不过也不是所有的地方都可以用Simple哦