English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring 3 JDBC在SimpleJdbcTemplate类的帮助下支持Java 5功能var-args(可变参数)和自动装箱。
SimpleJdbcTemplate类包装了JdbcTemplate类,并提供了可在其中传递任意数量参数的update方法。
int update(String sql,Object... 参数)
我们应该按照在参数化查询中定义的顺序在更新方法中传递参数值。
我们假设您已经在Oracle10g数据库中创建了下表。
create table employee( ID number(10), Name varchar2(100), Gehaltsnummer(10) );
Employee.java
Dieses Klasse enthält3eine mit Konstruktor, Setter und Getter versehene Eigenschaft.
package com.w3codebox; public class Employee { private int id; private String name; private float salary; //nein-Argument- und parameterisierte Konstruktoren //Getter und Setter }
EmployeeDao.java
Es enthält eine Eigenschaft SimpleJdbcTemplate und eine Methode update. In diesem Fall wird die update-Methode nur den Namen für die entsprechende ID aktualisieren. Wenn sowohl Name als auch Gehalt gleichzeitig aktualisiert werden sollen, werden die beiden obigen Zeilen des update-Methodenkomments markiert und die beiden folgenden Zeilen ausgeblendet.
package 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 um Informationen über die Datenbank zu enthalten, wie z.B. den Namen der Treiberklasse, die Verbindung URL, den Benutzernamen und das Passwort.
Die Klasse SimpleJdbcTemplate vom Typ DriverManagerDataSource enthält eine Methode namens
datasource
Eigenschaften. Daher müssen wir im SimpleJdbcTemplate-Klasse eine Referenz auf das DriverManagerDataSource-Objekt für das Datenquellenattribut bereitstellen.
Hier verwenden wir im EmployeeDao-Klasse das SimpleJdbcTemplate-Objekt, daher übergeben wir es über den Konstruktor, aber Sie können auch die Setter-Methode verwenden.
<?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
Diese Klasse erhält Beans aus der Datei applicationContext.xml und ruft die Update-Methode der Klasse EmpDao auf.
package 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); } }