JdbcTemplate:Spring里最基础的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问。并提供RowMapper实现半自动化数据库数据 bean的转化。
NameParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是索引参数。
SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用(generic)和可变参数列表来简化JDBC模板的使用。
用一下:
---
"jdbcTemplate":
-----
namedParameterJdbcTemplate:
--------
simpleJdbcTemplate:
----
用法大体上如上
基本上就是Simple包含了,Name和Template,不过也不是所有的地方都可以用Simple哦
NameParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是索引参数。
SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用(generic)和可变参数列表来简化JDBC模板的使用。
用一下:
- <?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://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <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":
- package cn.partner4java.template;
- import cn.partner4java.bean.User;
- /**
- * JdbcTemplate 测试
- * @author wangchanglong
- *
- */
- public interface HelloJdbcTemplate {
- /**
- * 保存测试
- * @param user
- */
- public void saveUser(User user);
- /**
- * 获取
- * @param id 索引
- * @return
- */
- public User getUserById(int id);
- }
- 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;
- /**
- * JdbcTemplate 测试
- * @author wangchanglong
- *
- */
- 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 (?,?)";
- }
- 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:
- package cn.partner4java.template;
- import cn.partner4java.bean.User;
- /**
- * 测试 NamedParameterJdbcTemplate
- * @author wangchanglong
- *
- */
- public interface HelloNamedParameterJdbcTemplate {
- public void saveUser(User user);
- }
- 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;
- /**
- * 测试 NamedParameterJdbcTemplate
- * @author wangchanglong
- *
- */
- 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)";
- }
- 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:
- package cn.partner4java.template;
- import cn.partner4java.bean.User;
- /**
- * 测试 simpleJdbcTemplate
- * @author wangchanglong
- *
- */
- 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;
- /**
- * 测试 simpleJdbcTemplate
- * @author wangchanglong
- *
- */
- 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);
- // simpleJdbcTemplate.update(USER_INSERT, user.getUsername(), user.getPassword());
- }
- 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 (?,?)";
- }
- 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哦