NamedParameterJdbcTemplate传参的n种写法
没啥技术含量,烂笔头记下来备查!
数据库
/*** NamedParameterJdbcTemplate* * @see [类、类#方法、类#成员]*/@Testpublic void testNamedTemplate(){String sql;List<Map<String, Object>> list;// 单条件sql = "select id, name from student where id<>:id";list = namedJdbcTemplate.queryForList(sql, Collections.singletonMap("id", 5));logger.info("★★★★ execute: {} ==> {}", sql, list);// Map传多条件-写法1sql = "insert into student(id, name) values(:id, :name)";Map<String, Object> params = new HashMap<>();params.put("id", 4);params.put("name", RandomStringUtils.randomAlphabetic(5));int count = namedJdbcTemplate.update(sql, params);System.out.println(count);// SqlParameterSource传多条件-写法2sql = "insert into student(id, name) values(:id, :name)";SqlParameterSource parameterSource = new MapSqlParameterSource("id", 20).addValue("name", RandomStringUtils.randomAlphabetic(5));count = namedJdbcTemplate.update(sql, parameterSource);System.out.println(count);// Java Bean传条件-写法3StudentVO vo = new StudentVO();vo.setId(5);vo.setName(RandomStringUtils.randomAlphabetic(5));SqlParameterSource source = new BeanPropertySqlParameterSource(vo);count = namedJdbcTemplate.update(sql, source);System.out.println(count);// 查询主键vo.setId(6);KeyHolder keyHolder = new GeneratedKeyHolder();namedJdbcTemplate.update(sql, source, keyHolder);String pk = String.valueOf(keyHolder.getKey());logger.info("★★★★ pk ==> {}", pk);// 返回单个对象sql = "select id, name from student where id=:id";vo = new StudentVO();vo.setId(4);source = new BeanPropertySqlParameterSource(vo);rowMapper = new BeanPropertyRowMapper<>(StudentVO.class);StudentVO studentVO = namedJdbcTemplate.queryForObject(sql, source, rowMapper);System.out.println(studentVO);// IN条件sql = "select id, name from student where id in (:ids)";list = namedJdbcTemplate.queryForList(sql, Collections.singletonMap("ids", Arrays.asList(1, 2, 3, 4, 5)));System.out.println(list);}
完整项目代码参考: https://gitee.com/00fly/java-code-frame/tree/master/springmvc-jpa-query
NamedParameterJdbcTemplate传参的n种写法相关推荐
- 【Vue】路由Router传参的两种方式(详解)
本文我们来介绍一下Vue中的 路由传参 问题,首先我们来准备一个基本路由的页面,如下: <!DOCTYPE html> <html lang="en"> & ...
- Silve37.Silverlight和ASP.NET相互传参的两种常用方式(QueryString,Cookie)
在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString.首先我们新建一个名 为SLConnectASP.NET的Silverlight应 ...
- Python基础day05【函数(函数传参的两种形式、函数形参)、拆包、引用、可变与不可变类型、引用做函数参数注意点】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] 目录 0.复习 1.函数传参的两种形式[掌握] 2.函数形参 2.1.缺省参数(默认参数) ...
- ajax的data传参的两种方式
ajax的data传参的两种方式 本文为转载. 1.[javascript] view plaincopy /** * 订单取消 * @return {Boolean} 处理是否成功 */ fun ...
- react 子传参父_react子父传参有几种方法?
react子父传参有几种方法?下面本篇文章给大家介绍一下react父子组件传参(值)的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. react父子组件传参(值)的几种方法 一 ...
- vue路由传参的三种方式/含页面刷新参数丢失解决方案(详细)
vue路由传参的三种方式以及页面刷新参数丢失问题 一.路由传参的三种方式 1.传参方式一:params传参 2.传参方式二:路由属性配置传参 3.传参方式三:query传参 二.三种传递方式的区别 一 ...
- 子组件向父组件传参的几种方法
子组件向父组件传参的几种方法 在用vue框架写项目的时候,多多少少会遇到子组件向父组件传参的方法.作为一个新手,确实让人头疼,于是便有了这篇小白写的总结,话不多说,开始! 以下方法全部基于这两个父子组 ...
- asp.net html silverlight 传参数,Silverlight和ASP.NET相互传参的两种常用方式(QueryString,Cookie)...
Silverlight实用窍门系列:37 程兴亮,网名煦风满裳 在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString.首先我们新建一 ...
- Vue:路由传参的三种方式
文章目录 前言 方式一:params 传参(显示参数) 1.声明式 router-link 2.编程式 this.$router.push 方式二:params 传参(不显示参数) 1.声明式 rou ...
- 详解vue路由传参的三种方式
在我们开发vue项目的时候,路由传参几乎是我们必须要用到的,一般出现场景是,当我们点击某个组件的某个按钮时跳转到另一个组件中,并携带参数,便于第二个组件获取数据.下面我就来说说vue路由传参的三种方式 ...
最新文章
- MySQL 优化实战记录
- 压缩备份日志 java_自动压缩备份日志文件到指定备份目录脚本
- vue路由权限(结合服务端koa2)
- 一文彻底搞懂字符串、字符串常量池原理
- python 虚线_Python 包安装和管理工具 pip 19.2 发布
- 如何将MyEclipse开发的项目导入到Eclipse中运行
- 向日葵远程控制软件——使用方法(含MacOS)
- 多媒体计算机辅助英语教学,多媒体计算机辅助英语教学初探
- JS中用execCommand(“SaveAs“)保存页面兼容性问题解决方案
- namecheap域名设置Cloudflare为第三方DNS
- 数学建模(NO.7相关系数—假设检验)
- 3.0_Linux如何连接网络
- centos8搭建ftp虚拟用户登录
- css 网页自适应 @media screen详解
- C语言坐标旋转,c语言矩阵的顺、逆时针旋转
- Unity小游戏(二)——贪吃蛇
- APK的反编译工具,Apktool,Dex2jar,JD-GUI等
- C++ 解决string转为char*中文乱码问题
- docker 镜像(images)
- 要用什么软件才可以打开cdr格式文件