Spring JDBC - SqlUpdate Sınıfı
org.springframework.jdbc.object.SqlUpdate sınıfı, bir SQL güncellemesini temsil eden yeniden kullanılabilir işlem nesnesi sağlar.
Sınıf Beyanı
Aşağıdaki beyanı org.springframework.jdbc.object.SqlUpdate sınıf -
public abstract class SqlUpdate<T>
extends SqlOperation
Kullanım
Step 1 - Yapılandırılmış bir veri kaynağı kullanarak bir JdbcTemplate nesnesi oluşturun.
Step 2 - RowMapper arayüzünü uygulayan bir StudentMapper nesnesi oluşturun.
Step 3 - SqlUpdate nesnesini kullanırken veritabanı işlemlerini gerçekleştirmek için JdbcTemplate nesne yöntemlerini kullanın.
Aşağıdaki örnek, SqlUpdate Object kullanılarak bir Sorgunun nasıl güncelleneceğini gösterecektir. StudentMapper nesnesini kullanarak Öğrenci Tablosundan Öğrenci nesnesine güncelleme kayıtlarını eşleyeceğiz.
Sözdizimi
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());
Nerede,
SQL - Öğrenci kayıtlarını güncellemek için sorguyu güncelleyin.
jdbcTemplateObject - Öğrenci kayıtlarını veritabanından okumak için StudentJDBCTemplate nesnesi.
StudentMapper - StudentMapper, öğrenci kayıtlarını öğrenci nesnelerine eşleme nesnesi.
sqlUpdate - Öğrenci kayıtlarını güncellemek için SqlUpdate nesnesi.
Spring JDBC ile ilgili yukarıda bahsedilen kavramları anlamak için StudentMapper nesnesini kullanarak bir sorgu ve harita sonucunu okuyacak bir örnek yazalım. Örneğimizi yazmak için, yerinde çalışan bir Eclipse IDE'ye sahip olalım ve bir Spring uygulaması oluşturmak için aşağıdaki adımları kullanalım.
Adım | Açıklama |
---|---|
1 | Spring JDBC - First Application bölümünde oluşturulan öğrenci projesini güncelleyin . |
2 | Fasulye yapılandırmasını güncelleyin ve uygulamayı aşağıda açıklandığı gibi çalıştırın. |
Veri Erişim Nesnesi arayüz dosyasının içeriği aşağıdadır 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);
}
Aşağıdakilerin içeriği Student.java dosya.
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;
}
}
Aşağıdakilerin içeriği StudentMapper.java dosya.
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;
}
}
Uygulama sınıfı dosyası aşağıdadır StudentJDBCTemplate.java tanımlı DAO arayüzü StudentDAO için.
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;
}
}
Aşağıdakilerin içeriği MainApp.java dosya.
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());
}
}
Yapılandırma dosyası aşağıdadır 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>
Kaynak ve bean yapılandırma dosyalarını oluşturmayı tamamladığınızda uygulamayı çalıştırmamıza izin verin. Uygulamanızda her şey yolundaysa, aşağıdaki mesajı yazdıracaktır.
----Updating Record with ID = 1 -----
Updated Record with ID = 1
----Listing Record with ID = 1 -----
ID : 1, Name : Zara, Age : 10