`
韩悠悠
  • 浏览: 839062 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用spring的jdbcTemplate-----使用具名参数

阅读更多

在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]));
	}
}

 

分享到:
评论

相关推荐

    在Java的Servlet中使用Spring JdbcTemplate-Eclipse版

    本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到Eclipse中进行调试运行,注意默认编译器是JDK1.8。

    在Java的Servlet中使用Spring JdbcTemplate-MyEclipse版.rar

    本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。

    jdbcTemplate-spring对jdbc的支持

    标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...

    spring-jdbcTemplate实例工程

    在这个实例工程中,我们将深入探讨Spring JdbcTemplate的基本使用、优势以及常见操作。 一、Spring JdbcTemplate简介 Spring JdbcTemplate的出现是为了弥补原生JDBC在编码上的繁琐,它通过模板方法模式,将SQL执行...

    基于注解的Spring JdbcTemplate

    本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. Spring JdbcTemplate简介 Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储...

    Spring--JdbcTemplate.pdf

    标签"spring 尚硅谷 JdbcTemplate"说明这个文档可能是由"尚硅谷"发布,"尚硅谷"是一家专注于IT教育和培训的机构,他们提供的文档可能会对Spring框架及其JdbcTemplate的使用有详细的讲解和实例。 在介绍JdbcTemplate...

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate能够自适应多种数据库,这是因为它的底层使用了JDBC的规范,而不同的数据库厂商都实现了JDBC API。这使得你可以使用相同的代码来连接MySQL、Oracle、PostgreSQL等不同类型的数据库,只需更换相应...

    Spring JDBCTemplate连接池jar包

    总之,Spring JDBCTemplate结合连接池提供了一个高效且易于使用的数据库访问层,它降低了数据库操作的复杂性,同时也提升了系统的性能。正确配置和使用这些库,可以极大地优化我们的数据库应用程序。

    strut2+spring+springjdbctemplate做的简易登录系统

    Struts2、Spring和Spring JDBC Template是Java Web开发中常用的三个框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理前端请求和业务逻辑;Spring则是一个全面的后端框架,提供...

    使用Spring JDBCTemplate进行增删改查curd操作

    JdbcTemplate使用PreparedStatement来执行SQL,自动防止SQL注入攻击,因为它会正确地转义参数值。 7. 错误处理 如果数据库操作失败,JdbcTemplate会抛出异常,如`DataAccessException`,使得我们可以快速定位并处理...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...

    spring-jdbc-4.2.4.RELEASE.jar,spring-tx-4.2.4.RELEASE.jar,jdbcTemplate使用的jar包

    `jdbcTemplate`是Spring JDBC模块的一部分,提供了简化数据库访问的API,使得开发者无需直接操作JDBC API,从而减少错误并提高代码的可维护性。 首先,我们来看`spring-jdbc-4.2.4.RELEASE.jar`。这个jar包包含了...

    使用Spring的JdbcTemplate实现分页功能

    使用Spring的JdbcTemplate实现分页功能

    spring-springMvc-jdbctemplate.rar

    在本项目中,"spring-springMvc-jdbctemplate.rar" 是一个包含了使用Spring框架、Spring MVC和JdbcTemplate实现的Web应用示例。这个压缩包可能包含了一系列的配置文件、源代码和数据库脚本,旨在展示如何整合这些...

    Spring4--3.jdbcTemplate事务

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要组件,特别是在处理JDBC(Java Database Connectivity)时。在Spring4中,JdbcTemplate提供了事务管理的功能,使得开发者能够更好地控制数据库操作的原子性...

    Spring JdbcTemplate

    这样,整个应用就可以通过Spring的依赖注入机制来获取并使用JdbcTemplate实例。 例如,一个简单的`applicationContext.xml`配置片段可能如下: ```xml &lt;bean id="dataSource" class="org.springframework.jdbc....

    使用Spring的JdbcTemplate调用Oracle的存储过程

    使用Spring的JdbcTemplate调用Oracle的存储过程

    SSH笔记-Spring JdbcTemplate

    SSH笔记-Spring JdbcTemplate是关于如何在Spring框架中利用JdbcTemplate进行数据库操作的教程。Spring是一个广泛应用的Java企业级应用框架,它提供了多种数据访问工具,而JdbcTemplate就是其中之一,用于简化JDBC...

    Spring JdbcTemplate 常用方法整理

    本文将深入探讨Spring JdbcTemplate的常用方法,并结合提供的`JsonBean.java`和`JdbcUtils.java`文件,来理解其在实际应用中的使用。 首先,JdbcTemplate的核心功能在于它提供了一系列的方法来执行SQL语句,包括...

    SpringBoot操作数据库JdbcTemplate-SB系列之005

    SpringBoot操作数据库JdbcTemplate--SB系列之005的配套项目代码。 环境: win11 工具: idea 2017 jdk: 1.8 数据库: mysql5.5  maven : 3.2.1 项目:maven 导入 首先介绍一下本人与本篇: 因为本篇之后其实...

Global site tag (gtag.js) - Google Analytics