spring JdbcTemplate 查询,参数中使用BeanPropertyRowMapper的作用
时间:2022-07-28
本文章向大家介绍spring JdbcTemplate 查询,参数中使用BeanPropertyRowMapper的作用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ORM:Object Relational Mapping:对象关系映射 就是把User类中的变量和数据库中的对应的表中的属性对应起来。
进入正题: 之所以要使用BeanPropertyRowMapper,是因为BeanPropertyRowMapper 实现了 RowMapper 接口。获取List结果列表,实现该接口可以使得数据库表字段和实体类自动对应。我们在使用BeanPropertyRowMapper时,是给query()方法传递一个BeanPropertyRowMapper对象,让JdbcTemplate帮我们把查询结果集ResultSet的每一行结果都使用BeanPropertyRowMapper.mapRow()方法,转化成我们想要的Java类对象
注意:自动绑定,需要列名称和Java实体类名字一致,如:属性名 “userName” 可以匹配数据库中的列字段 “USERNAME” 或 “user_name”。这样,我们就不需要一个个手动绑定了,大大提高了开发效率。 重点(敲黑板)
所以,如果在使用时,Java类名称要想和数据库字段名称匹配上,必须要把数据库字段名称设计成以下两种中的一种, 数据库字段名设计成全小写的形式,如myname;数据库字段名设计成下划线分割的形式,如my_name; 同时,Java属性名称应该尽量遵循Java编码风格,使用camelCase风格,如myName。
所以在queryforobject中,有三个参数
- sql语句
- sql语句中要用到的和问号对应的参数
- BeanPropertyRowMapper的对象用于接收
List<UserEntity> userList = jdbcTemplate.query(
SEL_BY_USERNAME_PWD,
new Object[] { user.getUserName(), user.getPwd() },
new BeanPropertyRowMapper<UserEntity>(UserEntity.class)
);
User user = jdbcTemplate.queryForObject(
SEL_BY_USERNAME_PWD,
new BeanPropertyRowMapper<UserEntity>(UserEntity.class),
new Object[] { user.getUserName(), user.getPwd() }
);
- 通过shell和sql结合查找性能sql(r2笔记68天)
- 淘宝的评论归纳是用什么方法做到的?
- Python的机器学习实战:AadBoost
- 通过shell检查分区表中是否含有默认分区(r2笔记87天)
- 利用python爬取人人贷网的数据
- 通过shell脚本查看package的信息(r2笔记86天)
- 通过shell脚本查看procedure的信息(r2笔记85天)
- 支持中文文本数据挖掘的开源项目PyMining
- 通过分区键值发现性能问题(r2笔记84天)
- linux乱码和数据库乱码的问题简单排查(r2笔记83天)
- 一条运行了3天的"简单"的sql(r2笔记82天)
- 海量数据迁移之使用shell启用多个动态并行(r2笔记81天)
- 使用shell测试历史数据样本(r2笔记80天)
- 【专业技术】编译器的工作原理
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 快速学习-Saturn创建Namespace
- 理解 Node.js 的 GC 机制
- LeetCode176——第二高的薪水
- 快速学习-Saturn QuickStart
- 快速学习-开发你的作业
- 理解Spring中的IoC和DI
- 快速学习-Saturn性能测试报告
- Java源码系列1——ArrayList
- 【Kubernetes】自定义资源CRDs不支持fieldselector
- Cypress系列(48)- and() 命令详解
- Java源码系列2——HashMap
- 快速学习-Saturn Console部署
- MySQL的各种日志
- 本地机器如何访问服务器上的docker容器内的tensorboard?
- MySQL是如何实现可重复读的?