//查询所有数据 public List selectAll(){ String sql = "select * from user"; List users = getJdbcTemplate().queryForList(sql); return users; }
//查询一张表总的记录数 publicintselectCount(){ String sql = "select count(*) from user"; int rowCount = getJdbcTemplate().queryForObject(sql ,Integer.class); return rowCount; }
//查询时绑定参数 publicintselectCountById(int id){ String sql = "select count(*) from user where id=?"; int rowCount = getJdbcTemplate().queryForObject(sql, Integer.class, id); return rowCount; }
//查询一个字符串 public String selectUsernameById(int id){ String sql = "select username from user where id=?"; String username = getJdbcTemplate().queryForObject(sql, String.class, id); return username; }
//查询数据并且将数据封装成一个自定义类型对象 public User selectUserById(int id){ String sql = "select * from user where id=?"; User user = getJdbcTemplate().queryForObject(sql, new UserRowMapper(), id); return user; }
//查询数据并且将数据封装成一个自定义类型对象,将这些对象保存到一个List集合中 public List<User> selectAllUser(){ String sql = "select * from user"; List<User> list = getJdbcTemplate().query(sql, new UserRowMapper()); return list; }
这个方法是 final 的,因此不能也无需重写到 Dao 类里,它会把传进去的 dataSource 转换为 JdbcTemplate ,在操作数据库的时候,使用 getJdbcTemplate() 获得 jdbcTemplate 对象,然后执行相应的方法。
在将查询结果封装成一个自定义类型对象的时候,需要写一个 Mapper
UserRowMapper.java
1 2 3 4 5 6 7 8 9 10 11 12 13
//T代表返回的类型 publicfinalclassUserRowMapperimplementsRowMapper<User> { @Override public User mapRow(ResultSet rs, int i)throws SQLException { User user = new User(); user.setId(rs.getString("id")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); user.setLevel(rs.getInt("level")); user.setAvatar(rs.getString("avatar")); return user; } }