Spring Jdbc使用

@Repository
public class UserDaoImpl extends JdbcTemplate implements UserDao {

    @Resource
    private JdbcTemplate jdbcTemplate;

    public boolean addUser(final User user) {
        String sqlStr = "INSERT INTO USER(username,PASSWORD) VALUES(?,?)";
        int status = jdbcTemplate.update(sqlStr, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setString(1, user.getUsername());
                ps.setString(2, user.getPassword());
            }
        });
        
        return status == 0 ? false : true;
    }

    public boolean delUser(final User user) {
        String sqlStr = "DELETE FROM USER WHERE id=?";
        int status = jdbcTemplate.update(sqlStr, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setInt(1, user.getId());
            }
        });

        return status == 0 ? false : true;
    }

    public List<User> findByAll() {
        String sqlStr = "SELECT id,username,PASSWORD FROM USER";
        List<User> users = jdbcTemplate.query(sqlStr,  new BeanPropertyRowMapper<User>(User.class));
        return users;
    }

    public List<User> findByCloumns(final User user) {
        String sqlStr = "SELECT id,username,password FROM USER WHERE username=? AND password=?";
        final List<User> users = new ArrayList<User>();
        final User u = new User();
        jdbcTemplate.query(sqlStr, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setString(1, user.getUsername());
                ps.setString(2, user.getPassword());
            }
        }, new RowCallbackHandler() {
            @Override
            public void processRow(ResultSet rs) throws SQLException {
                u.set(rs.getInt("id"), rs.getString("username"), rs.getString("password"));
                users.add(u);
            }
        });
        
        jdbcTemplate.query(sqlStr, new Object[]{user.getUsername(), user.getPassword()}, new RowCallbackHandler() {
            @Override
            public void processRow(ResultSet rs) throws SQLException {
                u.set(rs.getInt("id"), rs.getString("username"), rs.getString("password"));
                users.add(u);
            }
        });
        
        return users;
    }

    public boolean updUser(final User user) {
        String sqlStr = "UPDATE USER SET username=?, PASSWORD=? WHERE id=?";
        int status = jdbcTemplate.update(sqlStr, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setString(1, user.getUsername());
                ps.setString(2, user.getPassword());
                ps.setInt(3, user.getId());
            }
        });

        return status == 0 ? false : true;
    }

    
}

配置文件中声明jdbcTemplate即可

<!-- 配置Jdbc模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"></property>
</bean>

 

posted @ 2012-07-13 15:04  孟尧  阅读(205)  评论(0编辑  收藏  举报