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. 简单的物流项目实战,WPF的MVVM设计模式(四)

    接下来写ViewModels 创建运单的ViewModel类 public class CreateExpressWindowViewModel: NotificationObject { priva ...

  2. 30. Substring with Concatenation of All Words (JAVA)

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...

  3. /etc/nscd.conf - 域名服务缓存守护进程配置文件

    描述 DESCRIPTION 该文件 /etc/nscd.conf 在启动 nscd(8) 时读入.每一行或者指定一个属性和值,或者指定一个属性.服务和一个值.域之间通过空格或者TAB分开.‘#’表示 ...

  4. Linux学习--第七天--用户和用户组

    用户和用户组 usermod -a -G groupname username // 将已有用户添加到已有用户组 /etc/passwd michael:x:500:500:CentOS:/home/ ...

  5. CentOS7 添加新用户并授权 root 权限

    参考文章:CentOS 7中添加一个新用户并授权 # root 用户操作 $ 普通用户操作 创建用户 # adduser USERNAME # passwd USERNAME (输入密码) 授权 ro ...

  6. 将pip源更换到国内镜像

    将pip源更换到国内镜像用pip管理工具安装库文件时,默认使用国外的源文件,因此在国内的下载速度会比较慢,可能只有50KB/s.幸好,国内的一些顶级科研机构已经给我们准备好了各种镜像,下载速度可达2M ...

  7. layui 动态添加 表格数据

    静态表格: <table class="layui-table" id="table" lay-filter="table"> ...

  8. babel 转换箭头函数

    转换前: const sum = (a,b)=>a+b 转化后: // "use strict"; // var fn = function fn(a, b) { // re ...

  9. Android 如何生成jks签名文件

  10. Leetcode 11. Container With Most Water(逼近法)

    11. Container With Most Water Medium Given n non-negative integers a1, a2, ..., an , where each repr ...