• Spring query方法:用于JDBC查询

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

更多...

加载中...