jdbcTemplate
jdbcTemplate配置
<!-- 注入jdbcTemplate 官方工具包 -->
<bean id="jdbc" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg index="0" ref="dataSource"></constructor-arg>
</bean>
1
2
3
4
注解:

@Resource(name = "jdbc")
private JdbcTemplate util;
1
2
jdbcTemplate主要方法
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
return util.update("insert into t_user(user_name,user_pwd,user_age,user_sex)VALUES (?,?,?,?)",
user.getUserName(),user.getUserPwd(),user.getUserAge(),user.getUserSex()) > 0;
1
2
return util.update("delete FROM t_user where user_id = ?",userid) > 0;
1
return util.update("update t_user set user_name = ?,user_age=?,user_sex=? where user_id = ?",
user.getUserName(),user.getUserAge(),user.getUserSex(),user.getUserId()) > 0;
1
2
query方法及queryForXXX方法:用于执行查询相关语句;
1.query查询多个 对象
return util.query("select * from t_user",new UserRowMapper());
1
2.queryforObject:查询返回单个对象

要实现RowMapper新建一个映射类

User user = (User)util.queryForObject("select * from t_user where user_id = ?",new UserRowMapper(),id);
1
3.queryforMap
4.queryforList

call方法:用于执行存储过程、函数相关语句。
NamedParameterJdbcTemplate
NamedParameterJdbcTemplate配置
<bean id="namejdbc" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dataSource"></constructor-arg>
</bean>
1
2
3
NamedParameterJdbcTemplate使用方法
NamedParameterJdbcTemplate类拓展了JdbcTemplate类,对JdbcTemplate类进行了封装从而支持命名参数特性。
1.NamedParameterJdbcTemplate提供了命名参数,用:x代替了?

String sql="insert into t_user(user_name,user_pwd) values(:username,:userpwd)";
1
传参数可以用map或者SqlParameterSource
(1)map:map的值可以自由取,要将所有参数的值放到map中
(2)SqlParameterSource:不用一个个赋值,默认有MapSqlParameterSource和BeanPropertySqlParameterSource实现
MapSqlParameterSource实现非常简单,只是封装了java.util.Map;
BeanPropertySqlParameterSource封装了一个JavaBean对象,通过JavaBean对象属性来决定命名参数的值。

BeanPropertySqlParameterSource:可以把实例转化成SqlParameterSource ,例:new BeanPropertySqlParameterSource(new User);
BeanPropertyRowMapper:可以把返回的每一行转化成对应的对象, 例:new BeanPropertyRowMapper<>(userVo.class);

2.获取新增的主键
新增了KeyHolder类,使用它我们可以获得主键

KeyHolder keyHolder = new GeneratedKeyHolder();
namedParameterJdbcTemplate.update(sql, sqlParameterSource, keyHolder);
int i = keyHolder.getKey().intValue();
System.out.println(i);
1
2
3
4
输出新增的主键
---------------------
作者:傲娇的风信子
来源:CSDN
原文:https://blog.csdn.net/qq_41372922/article/details/82842918
版权声明:本文为博主原创文章,转载请附上博文链接!

jdbcTemplate和namedParameterJdbcTemplate的更多相关文章

  1. Spring JdbcTemplate 和 NamedParameterJdbcTemplate 使用

    1.简单介绍 DAO层 的一般使用常见的是MyBatis 和 Hibernate,但是Hibernate是重量级的,而且学习成本较高,Mybatis 需要编写大量配置文件及接口文件,对于简单的项目应用 ...

  2. JdbcTemplate 、NamedParameterJdbcTemplate、SimpleJdbcTemplate的区别

    一.JdbcTemplate 首先在配置文件中设置数据源 <bean id="dataSource" class="org.springframework.jdbc ...

  3. Spring(二十一):Spring JdbcTemplate、NamedParameterJdbcTemplate具名参数

    JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...

  4. Spring JdbcTemplate使用别名传参(NamedParameterJdbcTemplate)

    原文地址http://www.voidcn.com/article/p-cwqegtpg-hx.html 在使用JdbcTemplate时,一般传参都是用的?来绑定参数,但是对于某种情况就不适用了,例 ...

  5. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. JdbcTemplate的使用

    NamedParameterJdbcTemplate中包含了一个JdbcTemplate,NamedParameterJdbcTemplate中的很多方法实际上还是交由JdbcTemplate去完成. ...

  7. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

  8. SpringBoot系列: JdbcTemplate 快速入门

    对于一些小的项目, 我们没有必要使用MyBatis/JPA/Hibernate等重量级技术, 直接使用Spring JDBC 即可, Spring JDBC 是对 jdbc的简单封装, 很容易掌握. ...

  9. 【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

    我们这是可以正好借助之前学的factorybean类,自己吧jdbctemplate加载到spring容器中,我们可以封装多个这种对象,那么可以实现针对不同的数据库的jdbctemplate 首先我们 ...

随机推荐

  1. JavaScript回顾

    JavaScript是Web编程语言. JavaScript是一种基于对象的脚本语言 它是解释执行的 在客户端的浏览器中运行 可以被嵌入HTML文件中 代码以纯文本的形式存储在文件中 可以使用任何一种 ...

  2. odoo ERP 系统安装与使用

    https://hub.docker.com/_/odoo/ #!/bin/bash sudo docker pull postgres:10sudo docker pull odoo:11.0 su ...

  3. ubuntu安装软件失败

    Unable to fetch some archives, maybe run apt-get update or try with --fix-missing sudo gedit /etc/ho ...

  4. 在国外搭建 Web 服务器 - Linode VPS

    在国外搭建 Web 服务器 - Linode VPS 买一台虚拟服务器(VPS),把你网站放在上面跑跑,找找感觉,平时也可以用它来练习.前几天,搜索到了有人推荐 Linode 的 VPS,昨天又有朋友 ...

  5. 大数据学习笔记之初识Hadoop

    1.Hadoop概述 1.1 Hadoop名字的由来 Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名 Hadoop的官网:http://hadoop.apache.org . 1.2 ...

  6. LeetCode--008--字符串转换整数 (atoi)(python)

    示例 1: 输入: "42"输出: 42示例 2: 输入: " -42"输出: -42解释: 第一个非空白字符为 '-', 它是一个负号.  我们尽可能将负号与 ...

  7. MDC到日志管理配置

    MDC是什么? 第一次接触MDC,很蒙圈.看看导入的包import org.slf4j.Logger;import org.slf4j.LoggerFactory:import org.slf4j.M ...

  8. margin属性以及垂直外边距重叠问题

       盒子的margin属性         盒子的外边距margin 指的是当前盒子与其他盒子之间的距离,环绕在盒子周围的空白区域,属于不可见的区域,,不会影响到可见框的大小,而是会影响到盒子的位置 ...

  9. javascript之alter的坑

    1.注意在使用alert返回两数之和时,会出现0.1+0.2并不等于0.3的bug 解决方法: var f=0.1; var g=0.2; alert((parseFloat(f)*100+parse ...

  10. XXX is not a function

    今天,一个以前的小伙伴跟我说他遇到了一个问题,调试了将近两天(这家伙一开始不打算干程序员,跑去干了两个月销售,现在又想回来写代码了,所以就自己折腾一个demo,免得面试的时候被问住) 我把他的代码从头 ...