在JDBC用法中,SQL参数是用占位符?表示,并且受到位置的限制,定位参数的问题在于,一旦参数的位置发生变化,必须改变
参数的绑定,在Spring JDBC中,绑定SQL参数的另一种选择是使用具名参数,SQL具名参数是按照名称绑定,而不是位置绑定,
具名参数只在SImpleJdbcTemplate和NamedParameterJdbcTemplate中得到支持.
实现方法
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public void insert(User user){
String sql="insert into user values (:username,:password)";
Map<String,Object> pramters = new Map<String,Object>();
pramters.put("username",user.getUsername());
pramters.put("password",user.getPassword());
this.getSimpleJdbcTemplate().update(sql,pramters);
}
}
也可以提供一个SQL参数源,它将为具体参数提供SQL参数值,SQLParamterSource接口有俩个实现,其实的基本实现就是MapSqlParamterSource,它将Map包装起来作为参数源。
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public void insert(User user){
String sql = "insert into user values(:username,:password)";
Map<String,Object> paramters = new Map<String,Object>();
paramters.put("username",user.getUsername());
paramters.put("password",user.getPassword());
SqlParamterSource source= new MapSqlParamterSource(paramters);
this.getSimpleJdbcTemplate().update(sql,source);
}
}
SqlParamterSource的另一个实现是BeanPropertySqlParamterSource,它将普通的java对象包装起来作为SQL参数源,对于每个具名参数,会用同名的属性作为参数值
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public void insert(User user){
String sql ="insert into user values(:username,:password)";
SqlParamterSource parameterSource = new BeanPropertySqlParamterSource(user);
this.getSimpleJdbcTempalte().update(sql,paramterSource);
}
}
具名参数也可以用在批量更新中,可以给参数值提供一个Map数组或SqlParamterSource数组,
public class JdbcUserDao extends SimpleJdbcDaoSupport implements UserDao{
public void insertBetch(List<User> user){
String sql = "insert into user values(:username,:password)";
List<SqlParamterSource> paramters = new ArrayList<SqlParamterSource()>();
for(User u:user){
paramters.add(new BeanPropertySqlParamterSource(u));
}
this.getSimpleJdbcTemplate().batchUpdate(sql,paramters.toArray(new SqlParamterSource[0]));
}
}
分享到:
相关推荐
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到Eclipse中进行调试运行,注意默认编译器是JDK1.8。
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。
标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...
在这个实例工程中,我们将深入探讨Spring JdbcTemplate的基本使用、优势以及常见操作。 一、Spring JdbcTemplate简介 Spring JdbcTemplate的出现是为了弥补原生JDBC在编码上的繁琐,它通过模板方法模式,将SQL执行...
本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. Spring JdbcTemplate简介 Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储...
标签"spring 尚硅谷 JdbcTemplate"说明这个文档可能是由"尚硅谷"发布,"尚硅谷"是一家专注于IT教育和培训的机构,他们提供的文档可能会对Spring框架及其JdbcTemplate的使用有详细的讲解和实例。 在介绍JdbcTemplate...
SpringJdbcTemplate能够自适应多种数据库,这是因为它的底层使用了JDBC的规范,而不同的数据库厂商都实现了JDBC API。这使得你可以使用相同的代码来连接MySQL、Oracle、PostgreSQL等不同类型的数据库,只需更换相应...
总之,Spring JDBCTemplate结合连接池提供了一个高效且易于使用的数据库访问层,它降低了数据库操作的复杂性,同时也提升了系统的性能。正确配置和使用这些库,可以极大地优化我们的数据库应用程序。
Struts2、Spring和Spring JDBC Template是Java Web开发中常用的三个框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理前端请求和业务逻辑;Spring则是一个全面的后端框架,提供...
JdbcTemplate使用PreparedStatement来执行SQL,自动防止SQL注入攻击,因为它会正确地转义参数值。 7. 错误处理 如果数据库操作失败,JdbcTemplate会抛出异常,如`DataAccessException`,使得我们可以快速定位并处理...
使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...
`jdbcTemplate`是Spring JDBC模块的一部分,提供了简化数据库访问的API,使得开发者无需直接操作JDBC API,从而减少错误并提高代码的可维护性。 首先,我们来看`spring-jdbc-4.2.4.RELEASE.jar`。这个jar包包含了...
使用Spring的JdbcTemplate实现分页功能
在本项目中,"spring-springMvc-jdbctemplate.rar" 是一个包含了使用Spring框架、Spring MVC和JdbcTemplate实现的Web应用示例。这个压缩包可能包含了一系列的配置文件、源代码和数据库脚本,旨在展示如何整合这些...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要组件,特别是在处理JDBC(Java Database Connectivity)时。在Spring4中,JdbcTemplate提供了事务管理的功能,使得开发者能够更好地控制数据库操作的原子性...
这样,整个应用就可以通过Spring的依赖注入机制来获取并使用JdbcTemplate实例。 例如,一个简单的`applicationContext.xml`配置片段可能如下: ```xml <bean id="dataSource" class="org.springframework.jdbc....
使用Spring的JdbcTemplate调用Oracle的存储过程
SSH笔记-Spring JdbcTemplate是关于如何在Spring框架中利用JdbcTemplate进行数据库操作的教程。Spring是一个广泛应用的Java企业级应用框架,它提供了多种数据访问工具,而JdbcTemplate就是其中之一,用于简化JDBC...
本文将深入探讨Spring JdbcTemplate的常用方法,并结合提供的`JsonBean.java`和`JdbcUtils.java`文件,来理解其在实际应用中的使用。 首先,JdbcTemplate的核心功能在于它提供了一系列的方法来执行SQL语句,包括...
SpringBoot操作数据库JdbcTemplate--SB系列之005的配套项目代码。 环境: win11 工具: idea 2017 jdk: 1.8 数据库: mysql5.5 maven : 3.2.1 项目:maven 导入 首先介绍一下本人与本篇: 因为本篇之后其实...