2025年3月30日 星期日 甲辰(龙)年 月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Java

Spring query方法:用于JDBC查询

时间:03-07来源:作者:点击数:50

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;
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门