Spring JDBC - Lớp SqlUpdate

Các org.springframework.jdbc.object.SqlUpdate lớp cung cấp đối tượng hoạt động có thể tái sử dụng đại diện cho một bản cập nhật SQL.

Khai báo lớp học

Sau đây là khai báo cho org.springframework.jdbc.object.SqlUpdate lớp học -

public abstract class SqlUpdate<T>
   extends SqlOperation

Sử dụng

Step 1 - Tạo một đối tượng JdbcTemplate bằng cách sử dụng một nguồn dữ liệu được cấu hình.

Step 2 - Tạo một đối tượng StudentMapper thực hiện giao diện RowMapper.

Step 3 - Sử dụng các phương thức đối tượng JdbcTemplate để thực hiện các hoạt động cơ sở dữ liệu trong khi sử dụng đối tượng SqlUpdate.

Ví dụ sau sẽ trình bày cách cập nhật một Truy vấn bằng SqlUpdate Object. Chúng tôi sẽ ánh xạ các bản ghi cập nhật từ Bảng sinh viên sang đối tượng Sinh viên bằng cách sử dụng đối tượng StudentMapper.

Cú pháp

String SQL = "update Student set age = ? where id = ?";

SqlUpdate sqlUpdate = new SqlUpdate(dataSource,SQL);
sqlUpdate.declareParameter(new SqlParameter("age", Types.INTEGER));
sqlUpdate.declareParameter(new SqlParameter("id", Types.INTEGER));
sqlUpdate.compile();

sqlUpdate.update(age.intValue(),id.intValue());

Ở đâu,

  • SQL - Cập nhật truy vấn cập nhật hồ sơ học sinh.

  • jdbcTemplateObject - Đối tượng StudentJDBCTemplate để đọc các bản ghi sinh viên từ cơ sở dữ liệu.

  • StudentMapper - Đối tượng StudentMapper để ánh xạ hồ sơ sinh viên sang các đối tượng sinh viên.

  • sqlUpdate - Đối tượng SqlUpdate để cập nhật hồ sơ sinh viên.

Để hiểu các khái niệm được đề cập ở trên liên quan đến Spring JDBC, chúng ta hãy viết một ví dụ sẽ đọc một truy vấn và ánh xạ kết quả bằng cách sử dụng đối tượng StudentMapper. Để viết ví dụ của chúng tôi, hãy để chúng tôi có một IDE Eclipse đang hoạt động tại chỗ và sử dụng các bước sau để tạo một ứng dụng Spring.

Bươc Sự miêu tả
1 Cập nhật dự án Sinh viên đã tạo theo chương Spring JDBC - Ứng dụng đầu tiên .
2 Cập nhật cấu hình bean và chạy ứng dụng như được giải thích bên dưới.

Sau đây là nội dung của tệp giao diện Đối tượng Truy cập Dữ liệu 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 update
      * a record into the Student table.
   */
   public void update(Integer id, Integer age);

   /** 
      * This is the method to be used to list down
      * a record from the Student table corresponding
      * to a passed student id.
   */
   public Student getStudent(Integer id);   
}

Sau đây là nội dung của Student.java tập tin.

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;
   }
}

Sau đây là nội dung của StudentMapper.java tập tin.

package com.tutorialspoint;

import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;

public class StudentMapper implements RowMapper<Student> {
   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;
   }
}

Sau đây là tệp lớp triển khai StudentJDBCTemplate.java cho giao diện DAO được định nghĩa StudentDAO.

package com.tutorialspoint;

import java.sql.Types;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.SqlUpdate;

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 void update(Integer id, Integer age){
      String SQL = "update Student set age = ? where id = ?";
      
      SqlUpdate sqlUpdate = new SqlUpdate(dataSource,SQL);
      sqlUpdate.declareParameter(new SqlParameter("age", Types.INTEGER));
      sqlUpdate.declareParameter(new SqlParameter("id", Types.INTEGER));
      sqlUpdate.compile();
      
      sqlUpdate.update(age.intValue(),id.intValue());
      System.out.println("Updated Record with ID = " + id );
      return;
   }
   public Student getStudent(Integer id) {
      String SQL = "select * from Student where id = ?";
      Student student = jdbcTemplateObject.queryForObject(
         SQL, new Object[]{id}, new StudentMapper());
      
      return student;
   }
}

Sau đây là nội dung của MainApp.java tập tin.

package com.tutorialspoint;

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("----Updating Record with ID = 1 -----" );
      studentJDBCTemplate.update(1, 10);
      
      System.out.println("----Listing Record with ID = 1 -----" );
      Student student = studentJDBCTemplate.getStudent(1);
      
      System.out.print("ID : " + student.getId() );
      System.out.print(", Name : " + student.getName() );
      System.out.println(", Age : " + student.getAge());  
   }
}

Sau đây là tệp cấu hình Beans.xml.

<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
   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 ">

   <!-- Initialization for data source -->
   <bean id = "dataSource" 
      class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name = "driverClassName" value = "com.mysql.jdbc.Driver"/>
      <property name = "url" value = "jdbc:mysql://localhost:3306/TEST"/>
      <property name = "username" value = "root"/>
      <property name = "password" value = "admin"/>
   </bean>

   <!-- Definition for studentJDBCTemplate bean -->
   <bean id = "studentJDBCTemplate" 
      class = "com.tutorialspoint.StudentJDBCTemplate">
      <property name = "dataSource" ref = "dataSource" />    
   </bean>
      
</beans>

Khi bạn đã hoàn tất việc tạo các tệp cấu hình nguồn và bean, hãy để chúng tôi chạy ứng dụng. Nếu mọi thứ đều ổn với ứng dụng của bạn, nó sẽ in ra thông báo sau.

----Updating Record with ID = 1 -----
Updated Record with ID = 1
----Listing Record with ID = 1 -----
ID : 1, Name : Zara, Age : 10