Spring JDBC-SqlUpdate 클래스
그만큼 org.springframework.jdbc.object.SqlUpdate 클래스는 SQL 업데이트를 나타내는 재사용 가능한 작업 개체를 제공합니다.
클래스 선언
다음은에 대한 선언입니다. org.springframework.jdbc.object.SqlUpdate 클래스-
public abstract class SqlUpdate<T>
extends SqlOperation
용법
Step 1 − 구성된 데이터 소스를 사용하여 JdbcTemplate 객체를 생성합니다.
Step 2 − RowMapper 인터페이스를 구현하는 StudentMapper 객체를 생성합니다.
Step 3 − JdbcTemplate 객체 메소드를 사용하여 SqlUpdate 객체를 사용하는 동안 데이터베이스 작업을 수행합니다.
다음 예제는 SqlUpdate 개체를 사용하여 쿼리를 업데이트하는 방법을 보여줍니다. StudentMapper 개체를 사용하여 Student Table의 업데이트 레코드를 Student 개체에 매핑합니다.
통사론
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());
어디,
SQL -학생 기록을 업데이트하기 위해 쿼리를 업데이트합니다.
jdbcTemplateObject − StudentJDBCTemplate 객체는 데이터베이스에서 학생 기록을 읽습니다.
StudentMapper − StudentMapper 객체는 학생 기록을 학생 객체에 매핑합니다.
sqlUpdate − SqlUpdate 개체는 학생 기록을 업데이트합니다.
위에서 언급 한 Spring JDBC 관련 개념을 이해하기 위해 StudentMapper 객체를 이용하여 질의와지도 결과를 읽는 예제를 작성 해보자. 예제를 작성하기 위해 작동하는 Eclipse IDE를 준비하고 다음 단계를 사용하여 Spring 애플리케이션을 만듭니다.
단계 | 기술 |
---|---|
1 | Spring JDBC-First Application 장에서 만든 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 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);
}
다음은의 내용입니다 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<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;
}
}
다음은 구현 클래스 파일입니다. StudentJDBCTemplate.java 정의 된 DAO 인터페이스 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;
}
}
다음은의 내용입니다 MainApp.java 파일.
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());
}
}
다음은 구성 파일입니다. 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>
소스 및 빈 구성 파일 생성이 완료되면 애플리케이션을 실행 해 보겠습니다. 응용 프로그램에 문제가 없으면 다음 메시지가 인쇄됩니다.
----Updating Record with ID = 1 -----
Updated Record with ID = 1
----Listing Record with ID = 1 -----
ID : 1, Name : Zara, Age : 10