Spring JdbcTemplate.queryForList()
在本文中,我们将学习使用JdbcTemplate.queryForList()
方法。queryForList()方法执行给定的 SQL 并返回结果List
对象。
queryForList()方法通过以下方式接受参数。
1.
List
执行给定的静态查询并返回一个列表。它使用 JDBC Statement语句,而不是 PreparedStatement。结果列表包含映射。一个映射实例表示一行,其中映射键是列名,映射值是列值。
2.
List queryForList(String sql, Class elementType) throws DataAccessException
执行给定的静态查询并返回一个列表。它使用 JDBC Statement语句,而不是PreparedStatement。结果列表包含给定元素类型的元素。
3.
List queryForList(String sql, Class elementType, @Nullable Object... args) throws DataAccessException
给定 SQL 的查询从 SQL 创建预准备语句和要绑定到查询的参数列表,需要结果列表。结果列表包含给定元素类型的元素。
4.
List
查询给定的 SQL 从 SQL 创建预准备语句和要绑定到查询的参数列表,期望结果列表。结果列表包含映射。一个映射实例表示一行,其中映射键是列名,映射值是列值。
5.
List
给定 SQL 的查询从 SQL 创建预准备语句和要绑定到查询的参数列表,需要结果列表。结果列表包含映射。一个映射实例表示一行,其中映射键是列名,映射值是列值。
6.
List queryForList(String sql, Object[] args, int[] argTypes, Class elementType) throws DataAccessException
给定 SQL 的查询从 SQL 创建预准备语句和要绑定到查询的参数列表,需要结果列表。结果列表包含给定元素类型的元素。
参数:
sql是要执行的 SQL 查询。
args 是要绑定到查询的参数。
argType是参数的SQL类型,即java.sql.Types
elementType 是结果列表中必需的元素类型。
返回:
它返回对象List
。
抛出:
如果查询失败,则会引发DataAccessException。
使用Spring Boot的示例
PersonDAO.java
package com.concretepage;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Repository;@Repositorypublic class PersonDAO { @Autowired private JdbcTemplate jdbcTemplate; // queryForList(String sql) public List getAllPersons() { String sql = "select * from person"; List
Person.java
package com.concretepage;public class Person { private int id; private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return id + " - " + name + " - " + age; }}
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/concretepage?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
pom.xml
4.0.0 com.concretepage soap-ws 0.0.1-SNAPSHOT jar spring-demo Spring Demo Application org.springframework.boot spring-boot-starter-parent 2.7.4 17 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java 8.0.30 org.springframework.boot spring-boot-maven-plugin
MyApplication.java
package com.concretepage;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ApplicationContext;@SpringBootApplicationpublic class MyApplication { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(MyApplication.class, args); PersonDAO personDAO = ctx.getBean(PersonDAO.class); System.out.println(personDAO.getAllPersons()); // [1 - Rakesh - 30, 2 - Mohan - 25, 3 - Mohan - 25] System.out.println(personDAO.getAllNames()); // [Rakesh, Mohan, Mohan] System.out.println(personDAO.getIdsByNameNAge1("Mohan", 25)); // [2, 3] System.out.println(personDAO.getPersonsByNameNAge1("Mohan", 25)); // [2 - Mohan - 25, 3 - Mohan - 25] System.out.println(personDAO.getPersonsByNameNAge2("Mohan", 25)); // [2 - Mohan - 25, 3 - Mohan - 25] System.out.println(personDAO.getIdsByNameNAge2("Mohan", 25)); // [2, 3] }}
查找我们的演示中使用的 MySQL 表(人)屏幕截图。
参考
下载源代码
spring-jdbctemplate-queryforlist.zip来源地址:https://blog.csdn.net/allway2/article/details/127603759
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341