Spring+SimpleJdbcTemplate+SimpleJdbcDaoSupport+SimpleJdbcInsert+SimpleJdbcCall

深入浅出JDBC(四) – Insert与Spring SimpleJdbcInsert Sql的Insert操作,因为表的主键一般都设置成自增的原因,相较于update操作,多了对自增id的获取。spring jdbc对insert操作的支持也很完善,不仅在JdbcTemplate的update方法中支持返回主键,更是单独提供SimpleJdbcInsert类帮助使用insert操作。 JdbcTemplate的Insert spring使用KeyHolder作为自增列返回... 阅读详情

支持泛型、varargs特性。spring的JDBC集成提供了相应的SimpleJdbcTemplate与SimpleJdbcDaoSupport。
DI容器可以通过构建器将DataSource、JdbcTemplate、NamedParameterJdbcTemplate等对象传给它,从而准备好
SimpleJdbcTemplate实例。
为了使用泛型带来的优势,Spring提供了ParameterizedRowMapper回调接口。
配置示例如下:
 <bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
   <constructor-arg ref="jdbcTemplate"></constructor-arg>
 </bean>
回调示例如下:
ListableBeanFactory context = new ClassPathXmlApplicationContext(
    "beans.xml");
//GenericBeanFactoryAccessor dbfa = new GenericBeanFactoryAccessor(context);
SimpleJdbcTemplate jdbc = (SimpleJdbcTemplate) context.getBean("simpleJdbcTemplate");
List<Person> perList = jdbc.query("select * from porder limit 10", new ParameterizedRowMapper<Person>(){
 public Person mapRow(ResultSet rs,int rowNum) throws SQLException{
  Person pers = new Person();
  pers.setName(rs.getString("name"));
  return pers;
 }
});
System.out.println(perList);

ParameterizedBeanPropertyRowMapper和ParameterizedSingleColumnRowMapper是Spring内置的ParameterizedRowMapper
的实现类。ParameterizedBeanPropertyRowMapper类的示例如下:他会映射成单个的Person对象。
SimpleJdbcTemplate jdbc = (SimpleJdbcTemplate) context.getBean("simpleJdbcTemplate");
List<Person> plist = jdbc.query("select name from porder",ParameterizedBeanPropertyRowMapper.newInstance(Person.class));
System.out.println(plist);
ParameterizedSingleColumnRowMapper适合于集合中仅仅存在单列的情况,他会将单列的值取出来。
示例如下:
SimpleJdbcTemplate jdbc = (SimpleJdbcTemplate) context.getBean("simpleJdbcTemplate");
List<String> plist = jdbc.query("select name from porder",ParameterizedSingleColumnRowMapper.newInstance(String.class));
System.out.println(plist);

SimpleJdbcDaoSupport支持类:
SimpleJdbcDaoSupport支持类用于简化SimpleJdbcTemplate的使用。下面展示了继承与SimpleJdbcDaoSupport的
SimpleJdbcDaoSupportImpl类。DI容器需要为它注入DataSource或JdbcTemplate对象。
<bean id="simpleJdbcDaoSupportImpl" class="com.spring.test.SimpleJdbcDaoSupportImpl">
 <property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
SimpleJdbcDaoSupportImpl实现类示例如下:
public class SimpleJdbcDaoSupportImpl extends SimpleJdbcDaoSupport {
   public void test(){
 System.out.println(this.getSimpleJdbcTemplate().queryForInt(
   "select count(*) from porder where name=?",
   "李度"));
   }
}
测试类如下:
ListableBeanFactory context = new ClassPathXmlApplicationContext(
    "beans.xml");
//GenericBeanFactoryAccessor dbfa = new GenericBeanFactoryAccessor(context);
SimpleJdbcDaoSupportImpl jdbc = (SimpleJdbcDaoSupportImpl) context.getBean("simpleJdbcDaoSupportImpl");
jdbc.test();

SimpleJdbcInsert用于操作表,而SimpleJdbcCall用于操作存储过程或函数。不用于前面介绍的各种模板。
默认时需要从底层JDBC驱动获得RDBMS相关元数据,尤其是SimpleJdbcCall。
不用写SQL语句,通过withTableName()方法指定记录待插入的表,通过SqlParameterSource或Map对象能够指定记录。
随后,通过触发execute()方法能够将记录存储到表中。
示例代码如下:
ListableBeanFactory context = new ClassPathXmlApplicationContext(
    "beans.xml");
DataSource dataSource = (DataSource)context.getBean("dataSource");
SimpleJdbcInsert tempInsert = new SimpleJdbcInsert(dataSource);
tempInsert.withTableName("temp_no");
Map<String, Object> map = new HashMap<String,Object>();
map.put("no", "no");
map.put("color", "color");
tempInsert.execute(map);
使用usingGeneratedKeyColumns()方法自动生成主键。如
tempInsert.withTableName("temp_no").usingGeneratedKeyColumns("id");
此时SQL语句中将不会考虑id字段。
可以使用executeAndReturnKey(params)或executeReturnKeyHolder();返回主键的值。
使用usingColumns("username","password")考虑显示指定的列。

Spring MVC+SimpleJdbcDaoSupport增删改查小例子 NULL 博文链接:https://qindongliang.iteye.com/blog/1998799 立即下载

相关推荐

专项1.CCS代码补全与快捷键优化全攻略

本文全面解析CCS开发环境的代码补全功能与快捷键优化技巧,包括内容辅助触发机制、快捷键自定义配置、编码效率提升方法等实用内容。通过详细步骤指导开发者优化CCS配置,实现高效的代码自动补全和个性化快捷键设置,显著提升嵌入式开发效率。

kotlin6android的博客 222

好用的SimpleJdbcDaoSupport

我们在使用Spring的JdbcTemplate 写DAO时,通常可以继承JdbcDaoSupport或直接通过setter方法注入JdbcTemplate。此外spring中还提供了JdbcTemplate 的简化版SimpleJdbcTemplate以及对应的SimpleJdbcDaoSupport。 SimpleJdbcTemplate提供了对范型的支持,在查询操作时能以更...

leer的学习笔记本 363

ESP32搭配LVGL显示图片的两种方法详解:内部存储 vs 外部文件

本文详细介绍了ESP32搭配LVGL显示图片的两种方法:内部存储与外部文件。内部存储方案适合快速响应的小图片,而外部文件方案则适用于需要灵活更新和大容量图片的场景。通过对比分析,帮助开发者根据项目需求选择最优方案,提升嵌入式系统的UI性能。

weixin_30399821的博客 518

在使用SimpleJdbcDaoSupport作为基类创建Dao时候出现的奇怪的BUG

今天在练习使用SimpleJdbcDaoSupport时候,出现了一个莫名奇妙的BUG,现记录如下: XML中配置如下: --> 其中JdbcTestDaoImpl类继承了SimpleJdbcDaoSupport: public class JdbcTestDaoImpl extends SimpleJdbcDaoSupport

zdz_code的博客 743

MBIST --- PATR1.Memorybist测试原理

mem bist作为现在design设计中不可或缺的DFT设计内容,越发重要。本章节主要介绍mem bist组成部分,测试的原理以及注意事项。

sinat_27691203的博客 1万+

axi ps读写pl_PL读写DDR:Datamover能干什么

最近发现工程项目中一直在用AXI-DMA。这玩意儿搬数据倒是没问题,就是用axi-lite配置起来非常反人类。。。简单的办法其实是用datamover ip核。这个ip核能干嘛呢。准备写个文章解析一下。由于好多feature没用过,所以仅仅看文档可能理解有误,欢迎指出错误。首先扫个盲:MM2S指的是Memory map to stream. 读DDR. S2MM指的是steam to memory...

weixin_35908791的博客 1596

Spring中基于JdbcDaoSupport使用SimpleJdbcDaoSupport

学习在Spring中使用数据库的时候发现Spring对JDBC的Dao有个支持类JdbcDaoSupport,通过继承这个类可以减少JdbcTemplate的代码量,于是就照着《Spring In Action 2》中的没想到出现了下列异常 [code="java"]Failed to convert property value of type org.springframework.jdbc...

grow up 394

基于STM32L4XX、HAL库的TESEO-LIV4FTR定位模块驱动程序设计

支持多星座系统:GPS、GLONASS、Galileo和北斗。支持NMEA 0183协议和ST专有协议。高灵敏度:-167dBm跟踪灵敏度。低功耗设计,适合物联网和便携设备。内置LNA和SAW滤波器。

zhusl6688的博客 237

spring的HibernateDaoSupport以及HibernateTemplate和jdbcTemplate的选择问题

spring提供访问数据库的有三种方式: HibernateTemplate:org.springframework.orm.hibernate3.HibernateTemplate (推荐使用) HibernateDaoSupport:org.springframework.orm.hibernate3.support.HibernateDaoSupport jdbcTemplate

wuseyukui的专栏 2238

仿真学习系列(四十九):Sigrity仿真之电容库制作

在高速电路设计中,电源完整性(PI)是确保系统稳定、可靠运行的关键因素。随着电子产品对性能的要求不断提升,PDN(电源分配网络)的设计与优化变得尤为重要。为了确保电源网络在高速工作状态下不会引发电压波动和信号干扰,我们需要在设计中精确地选择电容器进行优化,而电容库的制作则是这一过程的核心。 OptimizePI作为一个强大的电源完整性优化工具,能够帮助设计师根据不同的目标,批量进行PDN仿真,以得出最佳电容选择。

案例文章,高速信号 223

测试用例设计工具大盘点:总有一款适合你

本文旨在帮助测试工程师、开发人员及团队管理者快速了解主流测试用例设计工具的特点、适用场景和选择逻辑。覆盖工具类型包括传统文档工具、开源管理工具、商业集成平台及新兴AI工具,范围涵盖中小团队到大型企业的不同需求。本文从“测试用例设计的痛点”切入,用生活案例解释核心概念;接着按“工具类型”分类盘点主流工具(附优缺点对比表);再通过“小团队/中大型团队/敏捷团队”等真实场景教你选工具;最后展望AI等未来趋势,帮你“一次学透,终身受用”。

项目管理的博客 1589

JdbcTemplate配置连接池与JdbcDaoSupport

SpringBoot整合JdbcTemplate参考文章主要内容 JdbcTemplate其实就是用来操作数据库的,是最基本的Spring JDBC模板,是对JDBC很轻的封装,具有较高的执行效率(基于jdbc的数据操作要比hibernate那些效率都高,尤其批量处理),一般用于系统数据库并发操作压力大的项目中。 Spring数据访问模板:在数据库操作过程中,有很多重复工...

海恩的博客 1663

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

org.springframework.jdbc.core.simple.SimpleJdbcTemplate queryForMap 方法在查询结果为空时抛出异常

import org.springframework.jdbc.core.simple.SimpleJdbcTemplate; private SimpleJdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { jdbcTemplate = new SimpleJdbcTemplate

henryzhang2009的专栏 5642

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Spring Data Access】SimpleJdbcInsert 使用方法

SimpleJdbcInsert使用介绍 SimpleJdbcInsert主要被用来简化插入操作, 下面我们通过一个简单的示例来熟悉一下使用: import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicatio...

简简单单兔呦 1577

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3【私塾在线原创】...

原创内容,转载请注明出处【http://sishuok.com/forum/blogPost/list/0/2492.html】 7.4 Spring提供的其它帮助 7.4.1SimpleJdbc方式 Spring JDBC抽象框架提供SimpleJdbcInsert和SimpleJdbcCall类,这两个类通过利用JDBC驱动提供的数据库元数据来简化JDBC...

编程资料大全 237

窥探p6spy的实现原理,抽取核心代码完成自己的SQL执行监控器

某一天线上项目突然炸了,报障说出现系统登录不了、数据查询超慢等一系列问题...奇怪,之前明明还跑的好好的,怎么会这样子了呢?后来我们的数据库大神(还是妹子哦)查了数据库,统计执行比较耗时的SQL语句,对其中的一些字段临时加了索引,问题算是暂时解决了,给她点个赞QAQ。 这个时候,我就萌发了一个想法,可否在项目里面引入一个监控、记录SQL运行情况的功能,并提供查询接口和显示界面。 说干就干,首先...

周先生丶的博客 3871

Spring中SimpleJdbcTemplate的用法实例(三)

一、简介 SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate,所以NamedParameterJdbcTemplate 能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要 增加了JDK5.0的泛型技术和可变长度参数支持。   增加知识:(N...

lehsyh的专栏 681

Spring SimpleJdbcTemplate教程

SimpleJdbcTemplate类也是基于JdbcTemplate类,但利用Java5+的可变参数列表和自动装箱和拆箱从而获取更简洁的代码。SimpleJdbcTemplate主要提供两类方法:query及queryForXXX方法、update及batchUpdate方法。首先让我们看个例子吧: java代码:Java代码  //定义UserModel的RowMapper  package

萌萌的It人 www.itmmd.com 9844

JDBC基本操作,配置数据库连接,并插入一行数据

bulid path中添加sqljdbc.jar包,注意端口名(一般都是1433)。

qq_43354555的博客 1534

JDBC简介及原理和使用介绍

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 ​ 使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问 例如,我们在Java代码中如果要访问MySQL,那么必须编写代码操作JDBC接口。JDBC接口是Java标准库自带的

wt334502157的博客 1938

Spring安全框架:企业级安全防护体系

Spring安全框架:企业级安全防护体系 【免费下载链接】spring-framework 项目地址: https://gitcode.com/gh_mirrors/spr/spring-framework ...

gitblog_00975的博客 353

玩转Spring全家桶笔记 03 Spring的JDBC操作以及SQL批处理的实现

1 spring-jdbc core JdbcTemplate 等相关核心接口和类(核心) datesource 数据源相关的辅助类(内嵌数据源的初始化) object 将基本的JDBC操作封装成对象 support 错误码等其他辅助工具 2.在学习之前先了解一下如何去通过注解实现一个Bean @Component 通用注解 用来注解一个通用的Bean...

adu521525的博客 204

第三章 处理数据

关于程序清单 3.12 中的代码,首先注意到的是 DesignTacoController 现在使用 @SessionAttributes(“order”) 进行了注解,并且在 order() 方法上有一个新的注解 @ModelAttribute。没有创建任何语句或连接。要实现 TacoRepository,需要一个 save() 方法,该方法首先保存基本的 Taco 设计细节(例如,名称和创建时间),然后为 Taco 对象中的每个 Ingredient 在 Taco_Ingredients 中插入一行。

Michael_Hzs的博客 527

SimpleJdbcDaoSupport 已经在Spring 3.1中被deprecated掉了。

好用的SimpleJdbcDaoSupport 及 SimpleJdbcTemplate,已经在3.1中被废弃 原因是JdbcDaoSupport 或NamedParameterJdbcDaoSupport已经提供了其所有功能 请看源代码: /** * Extension of {@link org.springframework.jdbc.core.support.JdbcDao

KimSoft's Blog 1万+

3种DataSource实现及主要的数据源

1.基本实现: 这类实现会生成标准的Connect对象。 2.连接池实现: 它返回的Connection对象是由连接池维护的,对于基本实现和连接池实现而言,它们的事务处理要借助链接对象的setAutoCommit()、commit()、roolback()等方法完成。 3.分布式事务(2PC)实现,它返回的Connection对象能够参与到JTA事务中,而且这些连接对象也是由连接池维护的。

ilovejava_2010的专栏 7681
上一篇: Spring+NamedParameterJdbcTemplate+NamedParameterJdbcDaoSupport+JDBC 命名参数支持
下一篇: 3种DataSource实现及主要的数据源
努力突破
博客等级 码龄17年 36粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值