Spring JDBC - JdbcTemplate 类

2025-10-06 00:25:18 8621

❮ 上一节

下一节 ❯

Spring JDBC - JdbcTemplate 类

org.springframework.jdbc.core.JdbcTemplate 类是 JDBC 核心包中的中心类。 它简化了 JDBC 的使用并有助于避免常见错误。 它执行核心 JDBC 工作流,让应用程序代码提供 SQL 并提取结果。此类执行 SQL 查询或更新,在 ResultSets 上启动迭代并捕获 JDBC 异常并将它们转换为在 org.springframework.dao 包中定义的通用、信息更丰富的异常层次结构。

类声明

以下是 org.springframework.jdbc.core.JdbcTemplate 类的声明 −

public class JdbcTemplate

extends JdbcAccessor

implements JdbcOperations

用法

步骤 1 − 使用配置的数据源创建 JdbcTemplate 对象。

步骤 2 − 使用 JdbcTemplate 对象方法进行数据库操作。

示例

以下示例将演示如何使用 JdbcTemplate 类读取查询。 我们将阅读学生表中的可用记录。

语法

实例

String selectQuery = "select * from Student";

List students = jdbcTemplateObject.query(selectQuery, new StudentMapper());

在这里,

selectQuery − 选择查询以阅读学生。

jdbcTemplateObject − 学生 JDBCTemplate 对象从数据库中读取学生对象。

StudentMapper − StudentMapper 是一个 RowMapper 对象,用于将每个获取的记录映射到学生对象。

为了理解上述与 Spring JDBC 相关的概念,让我们编写一个选择查询的示例。 为了编写我们的示例,让我们有一个工作的 Eclipse IDE 并使用以下步骤来创建一个 Spring 应用程序。

步骤

说明

1

更新在 Spring JDBC - 第一个应用程序 章下创建的项目 Student。

2

更新 bean 配置并运行应用程序,如下所述。

以下是数据访问对象接口文件 StudentDAO.java 的内容。

实例

package com.tutorialspoint;

import java.util.List;

import javax.sql.DataSource;

public interface StudentDAO {

/**

* This is the method to be used to initialize

* database resources ie. connection.

*/

public void setDataSource(DataSource ds);

/**

* This is the method to be used to list down

* all the records from the Student table.

*/

public List listStudents();

}

以下是 Student.java 文件的内容。

实例

package com.tutorialspoint;

public class Student {

private Integer age;

private String name;

private Integer id;

public void setAge(Integer age) {

this.age = age;

}

public Integer getAge() {

return age;

}

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setId(Integer id) {

this.id = id;

}

public Integer getId() {

return id;

}

}

以下是 StudentMapper.java 文件的内容。

实例

package com.tutorialspoint;

import java.sql.ResultSet;

import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

public class StudentMapper implements RowMapper {

public Student mapRow(ResultSet rs, int rowNum) throws SQLException {

Student student = new Student();

student.setId(rs.getInt("id"));

student.setName(rs.getString("name"));

student.setAge(rs.getInt("age"));

return student;

}

}

下面是定义的 DAO 接口 StudentDAO 的实现类文件StudentJDBCTemplate.java。

实例

package com.tutorialspoint;

import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;

public class StudentJDBCTemplate implements StudentDAO {

private DataSource dataSource;

private JdbcTemplate jdbcTemplateObject;

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

this.jdbcTemplateObject = new JdbcTemplate(dataSource);

}

public List listStudents() {

String SQL = "select * from Student";

List students = jdbcTemplateObject.query(SQL, new StudentMapper());

return students;

}

}

以下是 MainApp.java 文件的内容。

实例

package com.tutorialspoint;

import java.util.List;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.tutorialspoint.StudentJDBCTemplate;

public class MainApp {

public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");

StudentJDBCTemplate studentJDBCTemplate = (StudentJDBCTemplate)context.getBean("studentJDBCTemplate");

System.out.println("------Listing Multiple Records--------" );

List students = studentJDBCTemplate.listStudents();

for (Student record : students) {

System.out.print("ID : " + record.getId() );

System.out.print(", Name : " + record.getName() );

System.out.println(", Age : " + record.getAge());

}

}

}

以下是配置文件 Beans.xml。

实例

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

class = "org.springframework.jdbc.datasource.DriverManagerDataSource">

class = "com.tutorialspoint.StudentJDBCTemplate">

创建完源和 bean 配置文件后,让我们运行应用程序。 如果您的应用程序一切正常,它将打印以下消息。

------Listing Multiple Records--------

ID : 1, Name : Zara, Age : 11

ID : 2, Name : Nuha, Age : 2

ID : 3, Name : Ayan, Age : 15

❮ 上一节

下一节 ❯