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. 自己制作 Android Vector Asset 矢量图

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/c5138891/article/deta ...

  2. sql中关闭自增,并插入数据

    ET IDENTITY_INSERT 允许将显式值插入表的标识列中. 语法 SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OF ...

  3. 新建maven子模块 出现 Unable to read parent POM

    新建maven子模块 出现 Unable to read parent POM错误 于是把pom.xml文件中的 中文字符全部删除 包括 注释 最后成功建立

  4. MAKEDEV - 建立设备

    总览 (SYNOPSIS) cd dev; ./MAKEDEV -V cd dev; ./MAKEDEV [ -n ] [ -v ] update cd dev; ./MAKEDEV [ -n ] [ ...

  5. Windows Neovim

      配置文件路径C:\Users\UserName\AppData\Local\nvim\init.vim Vim-plug配置文件路径:C:\Users\UserName\AppData\Local ...

  6. Myabtis中批量更新update多字段

    在mybatis中批量更新多个字段 推荐使用如下操作: 方式1:在Dao层接口中: void updateBatch(@Param("list")List<Student&g ...

  7. Andronov-Hopf bifurcation

    地址:http://www.scholarpedia.org/article/Andronov-Hopf_bifurcation Andronov-Hopf bifurcation is the bi ...

  8. shell安装mysql,连接数据库,创建数据库

    https://blog.csdn.net/yhflyl/article/details/83061126 https://blog.csdn.net/wyl9527/article/details/ ...

  9. CPU指令重排序与MESI缓存一致性

    一.重排序场景 class ResortDemo { int a = 0; boolean flag = false; public void writer() { a = 1; //1 flag = ...

  10. Python之常用模块一(主要RE和collections)

    一.认识模块  什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.py文件 ...