zoukankan      html  css  js  c++  java
  • JDBC中,如何动态的设置查询条件

    今天看JDBC,发现有段代码,可以减少重复的编写查询方法,如下:

     1     public List<Goddess> query(List<Map<String, Object>> params) throws Exception{
     2         List<Goddess> result=new ArrayList<Goddess>();
     3         
     4         Connection conn=DBUtil.getConnection();
     5         StringBuilder sb=new StringBuilder();
     6         sb.append("select * from imooc_goddess where 1=1 ");
     7         
     8         if(params!=null&&params.size()>0){
     9             for (int i = 0; i < params.size(); i++) {
    10                 Map<String, Object> map=params.get(i);
    11                 sb.append(" and  "+map.get("name")+" "+map.get("rela")+" "+map.get("value")+" ");
    12             }
    13         }
    14         
    15         PreparedStatement ptmt=conn.prepareStatement(sb.toString());
    16         
    17         System.out.println(sb.toString());
    18         ResultSet rs=ptmt.executeQuery();
    19         
    20         Goddess g=null;
    21         while(rs.next()){
    22             g=new Goddess();
    23             g.setId(rs.getInt("id"));
    24             g.setUser_name(rs.getString("user_name"));
    25             g.setAge(rs.getInt("age"));
    26             g.setSex(rs.getInt("sex"));
    27             g.setBirthday(rs.getDate("birthday"));
    28             g.setEmail(rs.getString("email"));
    29             g.setMobile(rs.getString("mobile"));
    30             g.setCreate_date(rs.getDate("create_date"));
    31             g.setCreate_user(rs.getString("create_user"));
    32             g.setUpdate_date(rs.getDate("update_date"));
    33             g.setUpdate_user(rs.getString("update_user"));
    34             g.setIsdel(rs.getInt("isdel"));
    35             
    36             result.add(g);
    37         }
    38         return result;
    39     }

    它使用List<Map<String ,Object>>的方式来传递数据。

    map.put(name,"XXX");查询条件名

    map.put(rel,"XXX");查询的条件关系,是大于、小于还是等于

    map.put(value,"XXX");查询的条件值

    使用list可以存放多个以上的Map,减少为了某一个功能专门写一个查询方法,增强了代码的服用!

    感谢慕课网—JDBC对面的女孩看过来课程

  • 相关阅读:
    re模块
    正则表达式
    python-函数基础(*arge **kwargs)
    Python-类基础
    Python内置函数
    有些事情自己知道就好
    jquery和dom之间的转换
    Jquery中attr和prop的区别
    thinkphp一对多HAS_MANY
    thinkphp表单自动验证
  • 原文地址:https://www.cnblogs.com/TTDJAVA/p/4430671.html
Copyright © 2011-2022 走看看