query 方法用于 JDBC 查询,它有多种重载方法。
语法1
query(String sql,RowCallbackHandler rch)
参数说明:
- sql:执行 JDBC 查询的 SQL 语句。
- rch:RowCallbackHandler 回调接口的实现。
示例1
该方法使用 SQL 语句和 RowCallbackHandler 回调接口处理查询结果。
定义单用户查询方法,从数据库中查询指定 ID 编号的用户,将查询结果赋值给用户实体类,关键代码如下:
public TbUser getUser(int id){ final TbUser user = null; String sql = "select*from tb_user where id="+id; //创建一条SQL语句 getJdbcTemplate().query(sql,new RowCallbackHandler(){ public void processRow(ResultSet rs)throws SQLException{ user.setAge(rs.getInt("age")); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); } }); return user; }
示例2
定义用户查询方法,从数据库中查询所有用户,将查询结果赋值给用户实体对象并将所有实体对象添加到 List 集合中,关键代码如下:
public List getAllUsers(){ final List list = new ArrayList(); String sql = "select*from tb_user"; //创建一条SQL语句 getJdbcTemplate().query(sql,new RowCallbackHandler(){ public void processRow(ResultSet rs)throws SQLException{ TbUser user = new TbUser(); user.setAge(rs.getInt("age")); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); list.add(user); } }); return list; }
语法2
query(String sql,Object[] args,RowCallbackHandler rch)
参数说明:
- sql:执行 JDBC 查询的 SQL 语句。
- args:SQL 语句中对应的参数值数组。
- rch:RowCallbackHandler 回调接口的实现。
示例
该方法使用 SQL 语句、参数和 RowCallbackHandler 回调接口处理查询结果。
本示例定义单用户查询方法,从数据库中查询指定 ID 编号和指定年龄的用户,将查询结果赋值给用户实体类,关键代码如下:
public TbUser getUser(int id,int age){ final TbUser user = null; String sql = "select*from tb_user where id=?and age=?"; //创建一条SQL语句 Integer[] args = {id,age}; getJdbcTemplate().query(sql,args,new RowCallbackHandler(){ public void processRow(ResultSet rs)throws SQLException{ user.setAge(rs.getInt("age")); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); } }); return user; }
语法3
query(String sql,RowMapper rowMapper)
参数说明:
- sql:执行 JDBC 查询的 SQL 语句。
- rowMapper:RowMapper 回调接口的实现。
示例
该方法使用 SQL 语句、参数和 RowMapper 回调接口处理查询结果。
本示例定义用户查询方法,从数据库中查询所有用户实体对象,关键代码如下:
public List getAllUsers(){ String sql = "select*from tb_user"; //创建一条SQL语句 List list = getJdbcTemplate().query(sql,new RowMapper(){ public Object mapRow(ResultSet rs,int rowNum)throws SQLException{ TbUser user = new TbUser(); user.setAge(rs.getInt("age")); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); return user; } }); return list; }
语法4
query(String sql,Object[] args,RowMapper rowMapper)
参数说明:
- sql:执行 JDBC 查询的 SQL 语句。
- args:SQL 语句中对应的参数值数组。
- rowMapper:RowMapper 回调接口的实现。
示例
该方法使用 SQL 语句、参数和 RowMapper 回调接口处理查询结果。
本示例定义单用户查询方法,从数据库中查询指定年龄段的用户,返回这些用户实体对象的 List 集合,关键代码如下:
public List getUsers(int minAge,int maxAge){ String sql = "select*from tb_user where age>?&&age<?"; //创建一条SQL语句 Integer[] args = {minAge,maxAge}; List list = getJdbcTemplate().query(sql,args,new RowMapper(){ public Object mapRow(ResultSet rs,int rowNum)throws SQLException{ TbUser user = new TbUser(); user.setAge(rs.getInt("age")); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); return user; } }); return list; }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/23001.html