[阅读: 359] 2006-11-21 09:17:28
package org.springframework.jdbc.core;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.support.JdbcAccessor;
public class JdbcTemplateReTests extends JdbcAccessor {
public static void main(String[] args) throws SQLException {
final String jdbcUrl = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=arch";
final String uname = "XX";
final String pwd = "XX";
final String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName(className);
ds.setUrl(jdbcUrl);
ds.setUsername(uname);
ds.setPassword(pwd);
MyJdbcTemplate template = new MyJdbcTemplate(ds);
if (ds == template.getDataSource()) {
System.out.println("get the ds");
} else {
System.out.println("there are different");
}
final String sql = "UPDATE T_user SET userName = 'chen' WHERE userID = ?";
final int idParam = 1;
Dispatcher d = new Dispatcher(idParam, sql);
if (d.createPreparedStatement(ds.getConnection()) instanceof PreparedStatement) {
System.out.println("Dispatcher instanceof PreparedStatement ");
}
int rowsAffected = template.update(d);
System.out.println("update\t" + rowsAffected + "\trows");
}
private static class Dispatcher implements PreparedStatementCreator,
SqlProvider {
private int id;
private String sql;
public Dispatcher(int id, String sql) {
this.id = id;
this.sql = sql;
}
public PreparedStatement createPreparedStatement(Connection conn)
throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
return ps;
}
public String getSql() {
return sql;
}
}
}