1,用简单的JDBC模板更新数据库
传统的JdbcTemplate的许多方法都需要将语句参数作为对象数组进行传递,在SimpleJdbcTemplate中,可将其作为可变长度参
数进行传递,这样免去了将它们包装在一个数组中的麻烦,使用SimpletJdbcTemplate可以直接实例化,也可以扩展
SimpleJdbcDaoSuppport类来获取它的实例,
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public void insert(User user){
String sql = "insert into user values (?,?)";
this.getSimpleJdbcTemplate().update(sql,user.getUsername(),user.getPassword());
}
}
SimpleJdbcTemplate提供了一个便利的批处理方法,指定一个SQL语句,再以List<Object[]>的形式指定一批参数,这样就不用
实现BatchPreparedStatementSetter接口了.
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public void insert(List<User> user){
String sql ="insert into user values(?,?)";
List<Object[]> parameters = new ArrayList<Objcet[]>();
for(User u: user){
parameters.add(new Object[]{u.getUsername(),u.getPassword()});
}
this.getSimpleJdbcTemplate().batchUpdate(sql,paramters);
}
}
2,用简单的JDBC模板查询数据库
再实现RowMaper接口时。可以使用java.lang.Object.ParameterizedRowMapper子接口,它接受一个类型参数作为mapRow()方法的返回类型。
public class UserRowMapper implements ParamterizedRowMapper<User>{
public User mapRow(ResultSet rs,int rowNum)throws SQLException{
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}
}
将SimpleJdbcTemplate与ParameterizedRowMapper结合起来使用,可以免去强制类型转换返回结果类型的麻烦,对于queryForObjcet()方法而言,返回类型由ParameterizedRowMapper对象的类型参数决定的,
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public User findByUserId(int id){
String sql ="select *from user where id=?":
User user = this.getSimpleJdbcTemplate().queryForObject(sql,new UserRowMapper(),id);
return user;
}
}
在spring2.5中叶提供了一个便利的ParameterizedRowMapper实现,---ParameterizedBeanPropertyRowMapper,它可以自动将结果集中的一行映射到指定类的新实例上
public class JdbcUserDao extends SimleJdbcDaoSupport implements UserDao{
public List<User> findAll(){
String sql ="select *from user ";
List<User> users = this.getSimpleJdbcTemplate().query
(sql,ParameterizedBeanPropertyRowMapper.newInstance(User.class));
return users;
}
}
在通过SimpleJdbcTemplate查询单个值时,queryForObject()方法的返回类型由class参数(如,String.class)决定,因此,需要手工执行类型强制转换,
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public String getUsername(int id){
String sql ="select username from user where id= ?";
String username = this.getSimpleJdbcTemplate().queryForObject(sql,String.class,id);
return username;
}
}
分享到:
相关推荐
这个jar包包含了Spring对JDBC的支持,主要包括`JdbcTemplate`和`SimpleJdbcTemplate`类。`JdbcTemplate`是Spring提供的一种模板方法模式实现,它封装了JDBC的常用操作,如执行SQL查询、更新等,提供了异常转换和数据...
对于JDBC,Spring的JdbcTemplate和SimpleJdbcTemplate提供了一种基于模板的方法来执行SQL,避免了手动管理连接和结果集。 四、MVC(Model-View-Controller)框架 Spring MVC是Spring框架的一部分,用于构建Web应用...
SimpleJdbcTemplate是Spring JDBC提供的一个简单易用的模板类,它基于JdbcTemplate并进一步降低了数据库访问的复杂性。通过预编译SQL语句、参数绑定、结果集处理等功能,它使得开发者无需关注事务管理、异常转换等...
1. **JDBC抽象层**:Spring提供了对JDBC的简化封装,通过`JdbcTemplate`和`SimpleJdbcTemplate`,可以避免繁琐的数据库操作,减少SQL注入的风险。源码中的`org.springframework.jdbc.core`和`org.springframework....
它包括了JdbcTemplate和SimpleJdbcTemplate,用于执行SQL语句和处理结果集。 7. **spring-tx.jar**:事务管理模块,支持编程和声明式事务管理,可以与JDBC、Hibernate、JPA等数据访问技术一起使用。 8. **spring-...
对于SQL数据库操作,Spring提供了JdbcTemplate和SimpleJdbcTemplate,它们是不依赖于ORM的数据库访问工具。通过源码,我们可以学习到如何编写SQL语句,如何执行查询、更新等操作,以及如何处理结果集。 9. **异常...
Spring 2.0.8加强了对JDBC的抽象,提供了JdbcTemplate和SimpleJdbcTemplate,简化了数据库操作。同时,它还集成了多种ORM框架,如Hibernate、JPA等,提供了统一的编程接口。 八、集成测试 Spring 2.0.8引入了...
`JdbcTemplate`和`SimpleJdbcTemplate`是Spring提供的两个核心组件,用于简化Java数据库连接(JDBC)操作,从而减轻开发人员处理事务、异常处理和资源管理的负担。下面将详细阐述这两个工具的使用及其与MySQL数据库...
5. **JDBC抽象层**:4.0版本的JdbcTemplate和SimpleJdbcTemplate提供了更多的便利方法,简化了数据库操作。 6. **AOP增强**:增强了面向切面编程(AOP)的能力,包括更灵活的切入点表达式和代理模型。 在4.0.3....
本篇文章将详细讲解如何使用Spring的`SimpleJdbcTemplate`来实现DAO操作,这是一种简单易用且强大的工具,特别适合小型项目或快速开发。 `SimpleJdbcTemplate`是Spring框架提供的一个轻量级数据库访问组件,它基于`...
Spring JDBC通过提供JdbcTemplate和SimpleJdbcTemplate等工具类,帮助开发者以更安全、更易于管理的方式与数据库进行交互,降低了传统JDBC代码的复杂性。下面我们将详细探讨Spring JDBC的核心概念、工作原理以及如何...
在Spring的众多模块中,`SimpleJdbcTemplate`是数据库操作的一个重要工具,它简化了JDBC(Java Database Connectivity)的使用,提供了更加简洁和安全的API。本篇文章将深入探讨`SimpleJdbcTemplate`,分析其核心...
2. `SimpleJdbcTemplate`:它是`JdbcTemplate`的一个简化版本,更易于使用,但功能稍显有限。 3. `NamedParameterJdbcTemplate`:支持使用命名参数的SQL查询,提高了代码可读性。 4. `TransactionTemplate`:提供了...
这两个基类为自定义DAO提供了便利,它们提供了对JdbcTemplate或SimpleJdbcTemplate的引用,减少了重复代码。 10. **Best Practices** - 使用PreparedStatement而非Statement,防止SQL注入。 - 合理配置事务边界...
3. **JDBC抽象层增强**:Spring 3.0改进了JdbcTemplate和SimpleJdbcTemplate,同时引入了NamedParameterJdbcTemplate,提供了更方便的参数绑定。 4. **Spring MVC增强**:对Spring MVC进行了大量优化,增加了...
它提供了一个JdbcTemplate和SimpleJdbcTemplate接口,简化了SQL的执行和结果集的处理。通过Transaction Management,Spring还能处理事务控制,确保数据的一致性。 2. **Spring MVC**: Spring MVC是Spring框架的一...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
新的JdbcTemplate和SimpleJdbcTemplate提供了简化数据库操作的API,而JPA和Hibernate支持则让你可以无缝集成ORM框架。 4. **MVC(Model-View-Controller)**:Spring MVC是构建Web应用的主要组件。在3.0版本中,它...
通过`JdbcTemplate`和`SimpleJdbcTemplate`,开发者可以方便地进行数据库操作,而无需过多关注底层细节。同时,ORM(对象关系映射)的支持也更加完善,如对Hibernate的进一步整合,使得数据库操作更为简洁和高效。 ...
对于数据访问,Spring 3.0增强了对JDBC、Hibernate和JPA的支持,提供了统一的数据访问抽象,如`JdbcTemplate`和`SimpleJdbcTemplate`,简化了数据库操作。 7. **MVC框架** Spring 3.0的Web MVC框架引入了模型视图...