Spring框架自学之路(九)

原创 2018年04月15日 18:34:37

(09Day)

    前边我们讲到了spring中JDBC的操作模板JDBCTemplate,其中在写SQL语句的时候,里边有好多的问号,不知道你有没有想过如果我们有大量的参数的时候,那维护起来岂不是很麻烦。所以在 Spring JDBC 框架中, 绑定 SQL 参数的另一种选择是使用具名参数。

    那么什么事具名参数呢,所谓具名参数就是SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代。注意具名参数只在 NamedParameterJdbcTemplate 中得到支持 。接下来我们来看看具体是怎么用的。

    首先先在spring配置文件中配置NamedParameterJdbcTemplate

<!-- 配置 NamedParameterJdbcTemplate, 该对象可以使用具名参数, 其没有无参数的构造器, 所以必须为其构造器指定参数 -->
	<bean id="namedParameterJdbcTemplate"
		class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
		<constructor-arg ref="dataSource"></constructor-arg>	
	</bean>

    随后在使用具名参数时候有两种方法可以使用一种是通过map键入值,另外一种是通过对象键入,具体来看看下面的代码。

/**
	 * 使用NamedParameterTemplate
	 * 可以为参数起名字
	 * 1.好处:若有多个参数,则不用再去对应位置, 直接对应参数名, 便于维护。
	 * 2.缺点:较为麻烦 
	 */
	@Test
	public void testNamedParameterJdbcTemplate(){
		String sql = "INSERT INTO User (User_Name,LoginName,LoginPwd) VALUES(:un,:loginname,:loginpwd)";
		Map<String,Object> paramMap = new HashMap<String, Object>();
		paramMap.put("un", "zzz");
		paramMap.put("loginname", "xxx");
		paramMap.put("loginpwd", "0000");
		namedParameterTemplate.update(sql, paramMap);
	}
	
	/**
	 * 使用具名参数时, 可以使用 update(String sql, SqlParameterSource paramSource) 方法进行更新操作
	 * sql语句中的具名参数要和类的属性名一致
	 * 使用 SqlParameterSource 的 BeanPropertySqlParameterSource 实现类作为参数. 
	 */
	@Test
	public void  testNamedParameterJdbcTemplate2(){
		String sql = "INSERT INTO User (User_Name,LoginName,LoginPwd) VALUES(:userName,:loginName,:loginPwd)";
		User user = new User();
		user.setUserName("wjl");
		user.setLoginName("w61");
		user.setLoginPwd("618");
		SqlParameterSource paramSource = new BeanPropertySqlParameterSource(user);
		namedParameterTemplate.update(sql, paramSource);
	}
    可以看出来,第二种方法比较简单且易于维护。


Spring框架

-
  • 1970年01月01日 08:00

Spring框架的基础使用(Spring框架的入门)

Spring框架简介 Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。...
  • BluewineY
  • BluewineY
  • 2016-09-28 11:05:59
  • 1430

spring 入门学习

一. Bean 的生命周期 1.初始化有两种方式: -实现org.springframework.beans .factory.InitializingBean接口,覆盖afterProperti...
  • danmaidesenling
  • danmaidesenling
  • 2015-11-28 10:52:10
  • 226

Spring框架学习(第一讲)

相信在之前的文章中通过对Struts2的学习,很多童鞋都已经基本掌握了Struts2框架的大部分知识了,至于想要更精通更熟练还需要自己在项目实践中慢慢体会以及提高。一、Spring的介绍那么从现在开始...
  • u010970703
  • u010970703
  • 2016-12-03 15:45:30
  • 202

Spring框架自学之路——简易入门

目录 目录 介绍 Spring中的IoC操作 IoC入门案例 Spring的bean管理(配置文件) Bean实例化的方式 Bean标签的常用属性 属性注入 使用有参构造函数注入属性 使用s...
  • qq_15096707
  • qq_15096707
  • 2017-06-01 00:02:22
  • 29917

JAVA自学之路 一:学会选择

[原创 - 尚学堂科技 - 马士兵老师] JAVA自学之路 一:学会选择 [转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html] 为...
  • a137268431
  • a137268431
  • 2014-03-06 23:03:03
  • 1036

JAVA自学之路 ——尚学堂科技马士兵

http://segmentfault.com/blog/news/1190000002422956?ref=myread http://blog.csdn.net/caozhengqian/ar...
  • fu_pengfei_love822
  • fu_pengfei_love822
  • 2016-05-03 23:46:54
  • 1083

我的JAVA自学之路

趁着周末,泡图书馆写点啥,很庆幸自己养成了写博客的习惯,将某个时间的技术经验记录下来,为自己也为他人将来提供些许的帮助。足矣。想想自己,2015年夏末毕业于某985院校硕士专业,考研对于我大学来说,是...
  • linfujian1999
  • linfujian1999
  • 2017-08-13 10:40:45
  • 1509

我的 10 年自学编程之路

作者 | 码农网–小峰翻译 声明 | 本文是 码农网–小峰翻译 原创,已获授权发布,未经原作者允许请勿转载 为什么每个人都这样匆忙? 走进任何一家书店,你都能看到诸如《24小时自...
  • H176Nhx7
  • H176Nhx7
  • 2017-11-25 00:00:00
  • 183

java自学之路(仅对以后就业java方面的人)

  • 2009年06月05日 16:08
  • 42KB
  • 下载
收藏助手
不良信息举报
您举报文章:Spring框架自学之路(九)
举报原因:
原因补充:

(最多只允许输入30个字)