实体类:
public class User {
private Integer id;
private String name;
private String username;
private String password;
private String gender;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
测试:
public class TestCase {
private AbstractApplicationContext app;
private JdbcTemplate jt;
@Before
public void before() {
app = new ClassPathXmlApplicationContext("classpath:spring.xml");
jt = app.getBean("jt", JdbcTemplate.class);
}
@After
public void after() {
app.close();
}
@Test
public void save() {
User user = new User();
user.setUsername("王五");
user.setName("王五");
user.setPassword("534634634");
user.setGender("男");
String sql = "insert into t_user values(t_user_seq.nextval,?,?,?,?)";
Object[] args = {user.getUsername(), user.getName(), user.getPassword(), user.getGender()};
int row = jt.update(sql, args);
System.out.println(row);
}
@Test
public void delete() {
String sql = "delete from t_user where id=?";
int row = jt.update(sql, 61);
System.out.println(row);
}
@Test
public void findAll_1() {
//直接使用List<Map<String, Object>>,这种方式如果要使用实体类需要强转
String sql = "select * from t_user";
List<Map<String, Object>> list = jt.queryForList(sql);
System.out.println(list);
}
@Test
public void findAll_2() {
//使用RowMapper,每次在查询到结果时都会自动转换为实体类型
String sql = "select * from t_user";
List<User> list = jt.query(sql, new UserRowMapper());
System.out.println(list);
}
@Test
public void findById_1() {
//直接使用Map<String, Object>,这种方式如果要使用实体类需要强转
String sql = "select * from t_user where id=?";
Map<String, Object> map = jt.queryForMap(sql, 1);
System.out.println(map);
}
@Test
public void findById_2() {
//使用RowMapper,每次在查询到结果时都会自动转换为实体类型
String sql = "select * from t_user where id=?";
User user = jt.queryForObject(sql, new UserRowMapper(), 1);
System.out.println(user);
}
@Test
public void update() {
String sql = "update t_user set password=? where id=?";
int row = jt.update(sql, "fndskfndsklv", 62);
System.out.println(row);
}
private class UserRowMapper implements RowMapper<User> {
//使用RowMapper转成对应的实体对象
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
User user = new User();
user.setId(resultSet.getInt("id"));
user.setUsername(resultSet.getString("username"));
user.setName(resultSet.getString("name"));
user.setPassword(resultSet.getString("password"));
user.setGender(resultSet.getString("gender"));
return user;
}
}
}