使用Spring提供的三个JDBC模板类(JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate)操作数据库
2011-06-02 12:14
711 查看
一、JdbcTemplate是Spring中最基本的JDBC模板, 利用JDBC和简单的索引参数查询对数据库进行简单访问
Dao:
Test:
xml:
在Spring的配置文件中使用了数据源,请参考前一篇文章
NamedParameterJdbcTemplate能够在查询的时候把值绑定到SQL里的命名参数,而不是索引参数
其具体Dao.java、Test.java,及applicationContext.xml的配置除了属性jdbcTemplate与JdbcTemplate不同外,其它的的配置基本相同,在此就不再赘述,请读者自行参考上面的代码
三、
SimpleJdbcTemplate利用Java5的特性,比如自动装箱、通用和可变参数列表来简化JDBC模板的使用
@Resource private JdbcTemplate jdbcTemplate;
Dao:
package com.s.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import com.s.entity.User;
//@Repository("userDao")
public class JdbcTemplateUserDao {
@Resource private JdbcTemplate jdbcTemplate;
public void add(User user){
String sql = "insert into user(name,password) values(?,?)";
jdbcTemplate.update(sql, user.getName(),user.getPassword());
}
/**
* 查询所有
* @return User集合
*/
public List<User> find(){
String sql = "select id,name,password from user";
return jdbcTemplate.query(sql, new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
return user;
}});
}
/**
* 按ID查询User表
* @param id
* @return user
*/
public User findById(String id){
String sql = "select id,name,password from user where id=?";
return jdbcTemplate.queryForObject(sql, new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
return user;
}}, id);
}
/**
* 更新数据的方法
* @param user
*/
public void update(User user){
String sql = "update user set name=?,password=? where id=?";
jdbcTemplate.update(sql, user.getName(),user.getPassword(),user.getId());
}
/**
* 删除数据的方法
* @param id
*/
public void delete(String id){
String sql = "delete from user where id=?";
jdbcTemplate.update(sql, id);
}
}
Test:
package com.s.test; import java.util.List; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.s.dao.JdbcTemplateUserDao; import com.s.entity.User; public class JdbcTemplateUserDaoTest { @Test public void testAdd(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = new User(); user.setName("spring"); user.setPassword("spring"); JdbcTemplateUserDao dao = (JdbcTemplateUserDao) ac.getBean("userDao"); dao.add(user); } @Test public void testFind(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplateUserDao dao = (JdbcTemplateUserDao) ac.getBean("userDao"); List<User> list = dao.find(); for(User user:list){ System.out.println(user.getId()+":"+user.getName()+":"+user.getPassword()); } } @Test public void testFindById(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplateUserDao dao = (JdbcTemplateUserDao) ac.getBean("userDao"); User user = dao.findById("5"); System.out.println(user.getId()+":"+user.getName()+":"+user.getPassword()); } @Test public void testUpdate(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplateUserDao dao = (JdbcTemplateUserDao) ac.getBean("userDao"); User user = dao.findById("5"); user.setName("Spring3"); dao.update(user); } @Test public void testDelete(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplateUserDao dao = (JdbcTemplateUserDao) ac.getBean("userDao"); dao.delete("6"); } }
xml:
<!-- JDBC Template --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"></property> </bean>
在Spring的配置文件中使用了数据源,请参考前一篇文章
Spring配置数据源(DBCP数据源、c3p0数据源)
二、NamedParameterJdbcTemplate能够在查询的时候把值绑定到SQL里的命名参数,而不是索引参数
@Resource private NamedParameterJdbcTemplate jdbcTemplate;
其具体Dao.java、Test.java,及applicationContext.xml的配置除了属性jdbcTemplate与JdbcTemplate不同外,其它的的配置基本相同,在此就不再赘述,请读者自行参考上面的代码
三、
SimpleJdbcTemplate利用Java5的特性,比如自动装箱、通用和可变参数列表来简化JDBC模板的使用
@Resource private SimpleJdbcTemplate jdbcTemplate;
相关文章推荐
- 使用Spring提供的JdbcTemplate操作数据库
- 使用Spring的NamedParameterJdbcTemplate完成DAO操作
- 使用Spring的NamedParameterJdbcTemplate完成DAO操作
- 使用Spring的NamedParameterJdbcTemplate完成DAO操作
- 使用Spring的NamedParameterJdbcTemplate完成DAO操作
- JDBC之使用Spring提供的JdbcTemplate进行数据库操作
- 16、使用Spring提供的JdbcTemplate操作数据库
- Spring使用JdbcTemplate实现对数据库操作 (内部类定义RowMapper)
- Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法
- Spring使用JdbcTemplate实现对数据库操作
- Spring使用JdbcTemplate实现对数据库操作
- Mac Spring boot(1.5.9) 使用JDBCTemplate操作数据库
- Spring中的数据库操作--使用JdbcTemplate
- Spring 使用dataSource、JdbcTemplate简化数据库操作
- Spring的NamedParameterJdbcTemplate的简单使用
- Spring的NamedParameterJdbcTemplate的简单使用
- Spring使用NamedParameterJdbcTemplate
- (6)spring boot下使用jdbcTemplate操作数据库
- Spring使用JdbcTemplate操作数据库---写数据篇
- Spring中使用JdbcTemplate操作数据库