【spring】具名参数
具名参数
配置xml文件
1、配置dataSource(数据源)
代码实现:
<context:property-placeholderlocation="DB.properties"></context:property-placeholder><bean id="dataSource"class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${mysql_driver}"></property><property name="url" value="${mysql_url}"></property><property name="username" value="${mysql_username}"></property><property name="password" value="${mysql_passwd}"></property></bean>
(1)jdk里数据源的标准就叫dataSource
(2)java中的数据源就是javax.sql.DataSource。DataSource的创建可以有不同的实现。DataSource通常称为数据源,它包含连接池和连接池管理两部分,习惯上经常把DataSource称为连接池。
(3)所有的数据源都要实现dataSource的标准,如果他没有实现那么他的父类或者父接口要实现该标准(例如我们所引用的DruidDataSource)。
2、配置namedTemplate(具名参数)
代码实现:
<bean id="namedJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"><constructor-arg index="0" ref="dataSource"></constructor-arg>
</bean>
注:
(1)剧名参数没有setDataSource的方法,所以我们不能通过属性注入,而要使用构造方法的方式。
(2)构造方法有两种一种是使用参数的顺序(如代码所示)一种是使用参数的类型
在实现类中添加剧名参数属性
代码实现:
@Autowiredprivate NamedParameterJdbcTemplate npjTemplate;
注:
编写接口、添加实现类、创建信息类等步骤在上一篇文章中详细的写过,这里不再赘述。
修改实现类中的insert方法
代码实现:
public void insertUserInfor(UserInfor us) {String sql="insert into user_infor(user_id,password) "+ "values(:userId,:password)"; //jdbcTemplate.update(sql, us.getUserId(), us.getPassword());Map<String, Object> paramMap = new HashMap<String, Object>();paramMap.put("userId", us.getUserId());paramMap.put("password", us.getPassword());npjTemplate.update(sql, paramMap);}
注:
(1)格式:将value中的?改成:方法名的格式
(2)具名参数的使用场景:字段太多,value()中全是“?” 不利于理解。
(3)预处理方法的好处:
1)防止sql注入
2)添加多条数据时sql语句不用变
( 4)当查看源代码时可以一行一行的写注释,直到看懂为止
利用反射将对象里的属性转换为一个map对象
这个先留着,因为反射忘完了,等复习完反射就会来补充
利用反射的知识将通过request获得的map转换为一个对象
注:
(1)当使用getParameterMap的方法获得map的时候发现一个key可能对应一个数组,因为参数可能会重名,当使用chectbox的时候
(2)使用common-beanUtil将map转化为bean对象
代码实现:
BeanUtils.populate(bean, properties);
(bean的类型是Object, properties的类型是Map)
相关文章:

利用委托和泛型实现树的常用操作
在日常开发中,经常遇到对树的操作,我们可以利用泛型和委托对这些树进行操作,这样就不需要每有一个树就要实现相应的功能了。 源码在http://files.cnblogs.com/haiconc/LangTest.zip 首先,使用类泛型声明: public class…

Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)
前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架。ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码进行单元测试和支持TDD(测试驱动开发)开发…

eclipse工作空间配置导出
由于工作与学习的需求,需要使用不同的工作空间。而eclipse的新建工作空间其他以前的配置都没有继承过来,那么就得重新配置一遍。 经过学习其他前辈们的经验与自己的摸索总结一下3种方法: 方法一:使用eclipse的导出功能。 工作目录…

探讨UnsupportedOperationException的原因及解决方案
[原文链接]{https://blog.csdn.net/liu_005/article/details/74091805} 转载于:https://www.cnblogs.com/Wbin01/p/11222483.html

成长轨迹44 【ACM算法之路 百炼poj.grids.cn】【字符串处理】【2799、2976、2975、2742】...
一次ac的就不说啥了。。 2799:浮点数格式 View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <ctype.h> 4 #include <cmath> 5 6 char flo[10050][55]; 7 int poi[10050]; 8 9 int main()10 {11 int num;12 scanf("%d…

【转载】xmind的使用安装方法
原文链接:https://blog.csdn.net/qq_16093323/article/details/80967867

BCB Access violateion at Address 0000 0003. Read of address 0000 0003
来自网页:(我的电脑做不到) 运行一个程序,莫名出现一个对话框:access violation at address 0000.. read of address000试了几次问题依旧,网上搜了下解决办法:原文:baidu+google&…

与 Scott Guthrie 一道感受技术激情 1月13日于北京
可能很多朋友已经知道了这个消息,我觉得还是写一下,别让这个机会白白溜走。Scott Guthrie是谁,我就不介绍了,简单说:ASP.NET之父,Silverlight 的主要创始人,还管着太多微软的开发技术和工具&…

【web】将一个jar包更改成war包
可以看到,向tomcat中发布工程刚创建的工程不在可添加的范围内,所以可以看出该工程是一个jar包 1、在pom文件中添加一行代码 代码实现: <artifactId>jar.to.war</artifactId> 2、更新maven工程 此时发现main文件夹下出现了一个w…

牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...
在我们后台登陆的时候,有 用户名,密码和验证码3个必选项,所以我们托3个验证控件过来 例如这里,如果没有填写用户名,当点提交的时候,显示 红色的 * 号,并且弹出一个 alert 效果如下 这个是怎么做到的呢? 用户名后面的 * 号和弹出的 alert 分别用到 RequiredFieldValida…

HDU-1268 找新朋友 (素数筛选)
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2518 Accepted Submission(s): 1183Problem Description新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人&#x…

硬盘无法访问文件系统损坏,里面的资料怎样恢复
文件系统损坏说明这个盘的文件系统结构损坏了。在平时如果数据不重要,那么可以直接格式化就能用了。但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解(不格式化的恢复方法) 工具/软件&a…

【spring】第二个springmvc helloworld 以及 spring模糊路径
第二个helloword 配置文件: 1、添加pom文件 (1)配置parent 代码实现: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version…

jquery倒计时插件可自定义多个倒计时间
jquery倒计时插件设置多个自定义倒计时时间,任意设置天、小时、分钟、秒倒计时间功能。 查看演示>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">…

怎样用cocos2d-x做一个基于地图块的游戏(Part One)
怎样用cocos2d-X做一个基于地图块的游戏 (Part One) 在这个分为上下两部分的教程中,我们将介绍如何使用Cocos2D-X和地图编辑器做一款基于地图块的游戏。在这个简单的地图块游戏里,一个精灵将在沙漠里搜寻它可口的西瓜!…

【Code Complete】《Code Complete 》
良好编程实践的百科全书,完善编码聚焦于个人技能——所有的内容都来说明我们称之为“编写巧妙的代码”(write clean code,clean可以翻译多种意思,只能意会了,有些英语翻译成汉语会很痛苦的)。这本书就是那种…

redux示例
? 献上大概只有自己看得懂的学习笔记 结合使用实例理解更容易哦~import React from react; import ReactDom from react-dom; import {createStore} from redux; //解构一个createStore 创建状态对象//默认状态 state const defaultState{arr:[qq,bmw7], };//创建r…

18常用web开发 浮动层、提示层代码下载
1、jQuery顶部固定层页面滚动淡出淡进菜单显示 查看演示>> 2、jQuery鼠标滚动条到页面底部浮动层滑动弹出信息 查看演示>> 3、网页向导Jquery插件wlGuide功能操作步骤引导 查看演示>> 4、jQuery文字段落鼠标悬停图片突出显示和预览 查看演示>> 5、jque…

Android Handler的使用(二)
Handler的使用(二) 一、 Handler与线程的关系 Handler在默认情况下,实际上它和调用它的Activity是处于同一个线程的。 例如在Handler的使用(一)的示例1中,虽然声明了线程对象,但是在实际调用当中它并没有调用线…

【windows】cmd中的help无法使用的解决方法
今天使用黑框时遇到了一个问题,我在检查tomcat端口是否被占用时发现 黑框中竟然无法识别 netstat,随后试了一下help也无法识别。查了论坛后大名大佬给出的解决方案。 一、首先确定C:\WINDOWS\system32目录下有help.exe这个文件。 二、依次打开右键单击…

对微软Web Deploy的一次艰难调试
2011年初开始做一个项目,开始体验使用微软网站发布工具来发布网站。在服务器端安装发布服务后,可以在Visual Studio界面中右键点击Web项目,再点发布,第一次填好发布设置,以后就可以实现一键发布,虽然还有不…

vue总结 08状态管理vuex
状态管理 类 Flux 状态管理的官方实现 由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长。为了解决这个问题,Vue 提供 vuex:我们有受到 Elm 启发的状态管理库。vuex 甚至集成到 vue-devtools,无需配…
java8 lambda 表达式详解
lambada 表达式实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法使用 lambda 表达式时,会创建实现了函数式接口的一个匿名类实例可以将 lambda 表达式视为一个对象,可以将其作为参数传递1.…

【基础知识】win10常用快捷键
1、winctrlD 创建虚拟桌面 2、winctrl左右箭头 切换桌面 winctrlF4 关闭当前虚拟桌面 (按wintab 可以通过鼠标操作虚拟桌面的创建、切换与删除) 3、winM 全部窗口最小化 (winD 可在最小化全部窗口与恢复全部窗口状态 间自由切换 4、win数字 打开任务栏中从左到右的应用…

ASP.NET2.0-防止同一用户同时登陆
要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在。在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内容了&#…

如何选择真正的万兆防火墙?
http://www.cnw.com.cn/security-10g-firewall/htm2011/20110526_225444.shtml 随着“三网合一”、 “P2P视频”、“高清宽带”、“云时代”等逐渐成为人们关注的焦点,网络带宽的需求产生了几何级别的增长。目前,“千兆到桌面、万兆做骨干”对于交换机和…

Salesforce Lightning开发学习(二)Component组件开发实践
lightning的组件区分标准组件、自定义组件和AppExchange组件。标准组件由SF提供,自定义组件由developer自行开发,AppExchange组件由合作伙伴建立。下面我们写一个简单的列表demo来学习下自定义开发组件Component。 第一步:新建一个对象&#…

转 java c++互传arraylist
Java JNI由浅入深(包括:Java和C互传ArrayList泛型对象参数) 2010-11-25 09:57 1694人阅读 评论(1) 收藏 举报我们知道Java是一个运行在虚拟机里面的高级的编程语言,如果要调用系统的动态链接库的话,就要先声明native修饰的方法(类似接口里面的…

GoAccess安装及分析nginx实时日志
GoAccess是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看Web服务器统计信息,而无需使用您的浏览器(如果您希望通过SSH快速分析访问日志,或者只是喜欢在终端中工作),终端输出是默认输出,但…