加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Spring query方法:用于JDBC查询

发布时间:2020-12-15 02:38:09 所属栏目:Java 来源:网络整理
导读:query 方法用于 JDBC 查询,它有多种重载方法。 语法1 query(String sql,RowCallbackHandler rch) 参数说明: sql:执行 JDBC 查询的 SQL 语句。 rch:RowCallbackHandler 回调接口的实现。 示例1 该方法使用 SQL 语句和 RowCallbackHandler 回调接口处理查询
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,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,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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读