spring学习十五:使用SpringJdbc对数据库CURD操作

实体类:

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;
        }
    }

}

猜你喜欢

转载自blog.csdn.net/wqh0830/article/details/86646520