jdbcTemplate和namedParameterJdbcTemplate
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的更多相关文章
- Spring JdbcTemplate 和 NamedParameterJdbcTemplate 使用
1.简单介绍 DAO层 的一般使用常见的是MyBatis 和 Hibernate,但是Hibernate是重量级的,而且学习成本较高,Mybatis 需要编写大量配置文件及接口文件,对于简单的项目应用 ...
- JdbcTemplate 、NamedParameterJdbcTemplate、SimpleJdbcTemplate的区别
一.JdbcTemplate 首先在配置文件中设置数据源 <bean id="dataSource" class="org.springframework.jdbc ...
- Spring(二十一):Spring JdbcTemplate、NamedParameterJdbcTemplate具名参数
JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...
- Spring JdbcTemplate使用别名传参(NamedParameterJdbcTemplate)
原文地址http://www.voidcn.com/article/p-cwqegtpg-hx.html 在使用JdbcTemplate时,一般传参都是用的?来绑定参数,但是对于某种情况就不适用了,例 ...
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- JdbcTemplate的使用
NamedParameterJdbcTemplate中包含了一个JdbcTemplate,NamedParameterJdbcTemplate中的很多方法实际上还是交由JdbcTemplate去完成. ...
- spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装
导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...
- SpringBoot系列: JdbcTemplate 快速入门
对于一些小的项目, 我们没有必要使用MyBatis/JPA/Hibernate等重量级技术, 直接使用Spring JDBC 即可, Spring JDBC 是对 jdbc的简单封装, 很容易掌握. ...
- 【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢
我们这是可以正好借助之前学的factorybean类,自己吧jdbctemplate加载到spring容器中,我们可以封装多个这种对象,那么可以实现针对不同的数据库的jdbctemplate 首先我们 ...
随机推荐
- 简单的物流项目实战,WPF的MVVM设计模式(四)
接下来写ViewModels 创建运单的ViewModel类 public class CreateExpressWindowViewModel: NotificationObject { priva ...
- 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 ...
- /etc/nscd.conf - 域名服务缓存守护进程配置文件
描述 DESCRIPTION 该文件 /etc/nscd.conf 在启动 nscd(8) 时读入.每一行或者指定一个属性和值,或者指定一个属性.服务和一个值.域之间通过空格或者TAB分开.‘#’表示 ...
- Linux学习--第七天--用户和用户组
用户和用户组 usermod -a -G groupname username // 将已有用户添加到已有用户组 /etc/passwd michael:x:500:500:CentOS:/home/ ...
- CentOS7 添加新用户并授权 root 权限
参考文章:CentOS 7中添加一个新用户并授权 # root 用户操作 $ 普通用户操作 创建用户 # adduser USERNAME # passwd USERNAME (输入密码) 授权 ro ...
- 将pip源更换到国内镜像
将pip源更换到国内镜像用pip管理工具安装库文件时,默认使用国外的源文件,因此在国内的下载速度会比较慢,可能只有50KB/s.幸好,国内的一些顶级科研机构已经给我们准备好了各种镜像,下载速度可达2M ...
- layui 动态添加 表格数据
静态表格: <table class="layui-table" id="table" lay-filter="table"> ...
- babel 转换箭头函数
转换前: const sum = (a,b)=>a+b 转化后: // "use strict"; // var fn = function fn(a, b) { // re ...
- Android 如何生成jks签名文件
- Leetcode 11. Container With Most Water(逼近法)
11. Container With Most Water Medium Given n non-negative integers a1, a2, ..., an , where each repr ...