spring的SimpleJdbcTemplate查询原理

2023-10-04 01:50

本文主要是介绍spring的SimpleJdbcTemplate查询原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

讨论一个业务的持久化实现
考虑到性能问题,就不orm了
公司兄弟决定回到裸jdbc(连ibatis都不用了)
虽然此人很牛,但最后的结论还是:我又一次体会了裸jdbc的不靠谱程度

在此再次推荐Spring,上次我记得谁问起过spring除了ioc和aop还有啥
其实还有很多小东西做的挺好的
比如jdbcTemplate,以及2.5里面增加的BeanPropertyRowMapper
jdbcTemplate查询出resultset,帮忙开关connection
然后BeanPropertyRowMapper将resultset利用反射映射到bean property上面
类似于Jakarta的那个common beanutil的功能
(其实这个功能我很早就想扩展了……)


举个例子吧
jdbcTemplate.execute("create table student(id DECIMAL,first_name VARCHAR(10),last_name VARCHAR(10), age DECIMAL , createTime TIMESTAMP)");

jdbcTemplate.execute("insert into student(id,first_name,last_name,age,createTime) values(1,'A','B',10,2008-01-01)");

Student a = (Student) jdbcTemplate.queryForObject("SELECT id, first_name, last_name, age, createTime FROM student WHERE id=1", ParameterizedBeanPropertyRowMapper.newInstance(Student.class));

Assert.assertEquals(a.lastName,"B");


很简单吧,很好理解吧
只需要给jdbcTemplate注入个DataSource
Connection/Statement/ResultSet冗繁的两段式try finally close可以不用管了
ddl/dml操作接口统一化,当然还有避免sql注入的Object[]参数
[color=red][b]无聊的query过程都可以进行数据类型自动转换,而且不仅仅按标准命名,还可以支持下划线分隔后拼接成驼峰式字符
完全轻量级,优雅的代码,jdbc级的控制力度,丰富的文档,可靠的测试保障,活跃的社区......

BeanPropertyRowMapper/ParameterizedBeanPropertyRowMapper ,如果PO和数据库模型的字段完全对应(字段名字一样或者驼峰式与下划线式对应),如果使用JdbcTemplate则可以使用这个RowMapper作为PO和数据库的映射。[/b] [/color]

这篇关于spring的SimpleJdbcTemplate查询原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078

相关文章

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

SpringBoot使用ffmpeg实现视频压缩

《SpringBoot使用ffmpeg实现视频压缩》FFmpeg是一个开源的跨平台多媒体处理工具集,用于录制,转换,编辑和流式传输音频和视频,本文将使用ffmpeg实现视频压缩功能,有需要的可以参考... 目录核心功能1.格式转换2.编解码3.音视频处理4.流媒体支持5.滤镜(Filter)安装配置linu

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强