-
Spring框架的JDBC模板的简单操作
此例继续使用上一节创建的环境来做测试
package demo;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.activation.DataSource;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import domain.Account;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value="classpath:applicationContext.xml")
public class Demo1 {
/**
* Spring框架的JDBC模板的简单操作
* 因与修改的数字都是double所有在数字后面都加上小写字母d
*/
@Test
// 插入操作
public void run1() {
template.update("insert into t_account values (null,?,?)", "test1", 50000);
}
@Test
// 修改操作
public void run2(){
template.update("update t_account set name=?,money =? where id = ?", "test1",10000d,5);
}
@Test
// 删除操作
public void run3(){
template.update("delete from t_account where id = ?", 5);
}
/**
* 模板查询操作
* 需要实现RowMapper<?>接口,可重用。
*/
@Test
// 查询一条记录
public void run4(){
Account account = template.queryForObject("select * from t_account where id = ?", new BeanMapper(), 1);
System.out.println(account);
}
@Test
// 查询所有记录
public void demo5(){
List<Account> list = template.query("select * from t_account", new BeanMapper());
for (Account account : list) {
System.out.println(account);
}
}
}
/**
* 1.实现RowMapper接口的mapRow(ResultSet rs, int arg1)方法
* 2.实例化需要的bean类
* 3.手动赋值各个成员变量
* 4.最后返回该实例
* @author Administrator
*
*/
class BeanMapper implements RowMapper<Account>{
@Override
public Account mapRow(ResultSet rs, int arg1) throws SQLException {
Account account = new Account();
account.setId(rs.getInt("id"));
account.setName(rs.getString("name"));
account.setMoney(rs.getDouble("money"));
return account;
}
}