English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spring SimpleJdbcTemplate示例

Spring 3 JDBC在SimpleJdbcTemplate类的帮助下支持Java 5功能var-args(可变参数)和自动装箱。

SimpleJdbcTemplate类包装了JdbcTemplate类,并提供了可在其中传递任意数量参数的update方法。

SimpleJdbcTemplate类的update方法的语法

int update(String sql,Object... 参数)

我们应该按照在参数化查询中定义的顺序在更新方法中传递参数值。


SimpleJdbcTemplate类的示例

我们假设您已经在Oracle10g数据库中创建了下表。

create table employee(
número de id(10),
nombre varchar2(100),
número de salario(10)
);

Employee.java

Este clase contiene3una propiedad con constructor, setter y getter.

paquete com.w3codebox;
public class Employee {
private int id;
private String name;
private float salary;
//no-arg and parameterized constructors
//getters and setters
}

EmployeeDao.java

Este contiene una propiedad SimpleJdbcTemplate y un método actualizar. En este caso, el método actualizar solo actualizará el nombre correspondiente al ID. Si se desea actualizar tanto el nombre como el salario, comentar las dos líneas de código anteriores del método actualizar y descomentar las dos líneas siguientes.

paquete com.w3codebox;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
public class EmpDao {
SimpleJdbcTemplate template;
public EmpDao(SimpleJdbcTemplate template) {
        this.template = template;
}
public int update (Emp e){
String query="update employee set name=? where id=?";
return template.update(query, e.getName(), e.getId());
//String query="update employee set name=?,salary=? where id=?";
//return template.update(query, e.getName(), e.getSalary(), e.getId());
}
}

applicationContext.xml

DriverManagerDataSource usado para contener información sobre la base de datos, como el nombre de la clase del driver, la URL de conexión, el nombre de usuario y la contraseña.

La clase SimpleJdbcTemplate de tipo DriverManagerDataSource tiene un método llamado datasource propiedades. Por lo tanto, necesitamos proporcionar una referencia al objeto DriverManagerDataSource para la propiedad de fuente de datos en la clase SimpleJdbcTemplate.

Aquí, utilizamos el objeto SimpleJdbcTemplate en la clase EmployeeDao, por lo que lo pasamos a través del constructor, pero también puede usar el método setter.

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
    xmlns:p="http://www.springframework.org/schema/p
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="system" />
<property name="password" value="oracle" />
</bean>
<bean id="jtemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
<constructor-arg ref="ds"></constructor-arg>
</bean>
<bean id="edao" class="com.w3codebox.EmpDao">
<constructor-arg>
<ref bean="jtemplate"/>
</constructor-arg>
</bean>
</beans>

SimpleTest.java

Este tipo obtiene Bean desde el archivo applicationContext.xml y llama al método de actualización de la clase EmpDao.

paquete com.w3codebox;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class SimpleTest {
public static void main(String[] args) {
    Resource r=new ClassPathResource("applicationContext.xml");
    BeanFactory factory=new XmlBeanFactory(r);
    EmpDao dao=(EmpDao)factory.getBean("edao");
    int status=dao.update(new Emp(23,"Tarun",35000));
    System.out.println(status);
}
}