精华内容
下载资源
问答
  • java多条件查询

    千次阅读 2018-12-11 13:16:21
    java多条件查询 在项目实际中会用得到多条件查询,就是在一个搜索框中选择个条件去在数据库中查询, 在这里自己总结一下 首先编写SQL语句: <select id="findByCondition&...

    java多条件查询

    在项目实际中会用得到多条件查询,就是在一个搜索框中选择多个条件去在数据库中查询, 在这里自己总结一下

    首先编写SQL语句:

    <select id="findByCondition"  resultMap="BaseResultMap">
     <where>
                1 = 1 
                <if test="el_planYear != null and el_planYear.size > 0" >
                    AND e1.plan_year in
                    <foreach collection="el_planYear" item="item" index="index" open="(" separator="," close=")">
                        #{item}
                    </foreach>
                </if>
            </where>
            ORDER BY id DESC
        </select>
    

    用到了SQL foreach 来实现传入多个参数,因为collection的参数为数组所以要在dao层将el_planYear定义为数组
    dao层代码编写 生成get,set方法

    private String[] el_planYear;
    

    mappar代码编写

    List<实体类> findByCondition(@Param("elPlan") 实体类 elPlan,@Param("el_planYear") List<String> el_planYear );
    

    server层

    PageInfo<实体类> findByCondition(实体类 elPlan,List<String> el_planYear,
                            			Integer pageSize,Integer pageNum);
    

    实现server

    public PageInfo<实体类> findByCondition(实体类 elPlan,List<String> el_planYear,
                                                Integer pageSize,Integer pageNum){
            PageHelper.startPage(pageNum,pageSize);
            List<ElPlan> list = elPlanMapper.findByCondition(elPlan,el_planYear);
            PageInfo pageInfo = new PageInfo(list);
            return pageInfo;
        }
    

    Controller层

     @GetMapping("/find")
        public CommonResponse findByCondition(实体类 elPlan,Integer pageNum,Integer pageSize){
            try {
                return CommonResponse.ok(elPlanService.findByCondition(elPlan,
                        Arrays.asList(elPlan.getEl_planYear()),pageNum,pageSize));
            }catch (Exception e){
                e.printStackTrace();
                return CommonResponse.errorException("查询失败");
            }
        }
    

    CommonResponse 为自定义响应数据结构
    测试效果
    在这里插入图片描述

    展开全文
  • Java 多条件查询

    千次阅读 2019-07-07 09:24:04
    首先在dao层写一个普通的查询语句: ...在语句后面加上where1=1,是为了后面更好的拼接条件进行查询,避免在查询的时候直接拼接成 where and … 而报语法错误,下面是实现的方法: public List<BtAssayIt...

     

    首先在dao层写一个普通的查询语句:

    private String findPage = "SELECT * from bt_assayitemstable where 1=1 ";

    在语句后面加上where1=1,是为了后面更好的拼接条件进行查询,避免在查询的时候直接拼接成

    where and … 而报语法错误,下面是实现的方法:

    public List<BtAssayItems> findPage(String assayItemsNumber,
    
                String assayItemsName, String chineseName, int start, int PageSize) {
    
        List<BtAssayItems> list = null;
    
        con = DbUtil.getConnection();
    
        try {
    
            StringBuffer sql = new  StringBuffer();
    
            if(Tools.isNotNull(assayItemsNumber)){
    
                    sql.append("and AssayItemsNumber like '%"+ assayItemsNumber + "%'");
    
            }
    
            if(Tools.isNotNull(assayItemsName)){
    
                    sql.append("and AssayItemsName like '%"+ assayItemsName + "%'");
    
            }
    
            if(Tools.isNotNull(chineseName)){
    
                    sql.append("and ChineseName like '%"+ chineseName + "%'");
    
            }
    
            sql.append(" LIMIT ?,?");
    
            findPage+=sql;
    
            ps = con.prepareStatement(findPage);
    
            ps.setInt(1, start);
    
            ps.setInt(2, PageSize);
    
            rs = ps.executeQuery();
    
            list = DbUtil.getResult(rs, BtAssayItems.class);
    
            } catch (SQLException e) {
    
            e.printStackTrace();
    
            }finally{
    
                DbUtil.close(con, ps, rs);
    
            }
    
            return list;
    
        }
    
    

    然后再去service包内写它接口与实现类,这里就不多叙述,servlet那边通过

    request.getParameter接收jsp页面传过来的值,如果是int要通过Integer转换为int型。

    我这里使用了JQ.bsgrid进行分页,

    下面是对应servlet层的代码:

    private void getlist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            String strpageSize = request.getParameter("pageSize");
    
            String strcurPage = request.getParameter("curPage");
    
            IAssayItemsService assayItemsService = new AssayItemsServiceImpl();
    
            String assayItemsNumber = request.getParameter("assayItemsNumber");
    
            String assayItemsName = request.getParameter("assayItemsName");
    
            String chineseName = request.getParameter("chineseName");
    
    
    
            Bsgrid<BtAssayItems> bsgrid = new Bsgrid<>();
    
            if (Tools.isNum(strcurPage) && Tools.isNum(strpageSize)) {
    
                int pageSize = Integer.parseInt(strpageSize);
    
                int curPage = Integer.parseInt(strcurPage);
    
                int start = (curPage - 1) * pageSize;
    
               
    
    List<BtAssayItems> list = assayItemsService.findPage(assayItemsNumber, assayItemsName, chineseName, start, pageSize);
    
    int totalRows = assayItemsService.getTotalRow(assayItemsNumber, assayItemsName, chineseName);
    
                bsgrid.setCurPage(curPage);
    
                bsgrid.setTotalRows(totalRows);
    
                bsgrid.setSuccess(true);
    
                bsgrid.setData(list);
    
            } else {
    
                bsgrid.setSuccess(false);
    
            }
    
            JSONObject jsonObject = JSONObject.fromObject(bsgrid);
    
           
    
            PrintWriter out = response.getWriter();
    
            out.write(jsonObject.toString());
    
            out.close();
    
        }

    下面是jsp页面对应的js代码

    function querys(){
    
           var assayItemsNumber = $("#qassayItemsNumber").val();
    
           if (assayItemsNumber == undefined || assayItemsNumber=="") {
    
                    assayItemsNumber = "";
    
                    } 
    
            var assayItemsName = $("#qassayItemsName").val();
    
            if (assayItemsName == undefined || assayItemsName=="") {
    
                    assayItemsNames = "";
    
                    } 
    
            var chineseName = $("#qchineseName").val();
    
            if (chineseName == undefined || chineseName=="") {
    
                    chineseName = "";
    
                    }   tbAssayItem.search({ assayItemsNumber:assayItemsNumber,assayItemsName:
    
    assayItemsName,chineseName:chineseName});        
    
        }

        然后再bsgrid初始化表格时调用这个方法,和在点击查询按钮的时候调用该方法即可实现

    多条件查询。

     

    展开全文
  • java 多条件查询拼接参数

    千次阅读 2019-07-05 20:39:51
    在很初学java的人在写多条件查询的时候一般都是直接用 IF 判断进行拼接,这样很不美观,而且容易出问题,下面我在这里记录一下我是如何进行条件拼接的,下面我先说一下前提条件和思路: 第一步:获取从页面传过来...

           在很多初学java的人在写多条件查询的时候一般都是直接用 IF 判断进行拼接,这样很不美观,而且容易出问题,下面我在这里记录一下我是如何进行条件拼接的,下面我先说一下前提条件和思路:

    第一步:获取从页面传过来的参数;

    第二步:把参数添加到Map集合中;

    第三步:进行参数类型的判断和拼接;

    建一个实体类,如:

    public class C_ChuangJianRenWu {
        private int chuangJianRenWuID;

    public int getChuangJianRenWuID() {
            return chuangJianRenWuID;
        }
        public void setChuangJianRenWuID(int chuangJianRenWuID) {
            this.chuangJianRenWuID = chuangJianRenWuID;
        }

    }

     因为查询的时候也要用到,所有一般都会有对应的实体类;实体类在拼接参数的时候只是用来获取参数的类型来进行相对应的拼接;

    把参数拼接到map中:

    //接收页面的参数

    String chuangJianRenWuID=Integer.valueOf(request.getParameter("chuangJianRenWuID"));

    //把参数放入map集合中

    // 相当    where cj.chuangJianRenWuID=chuangJianRenWuID 这样的一个条件 ,可以给别名,也可以直接给数据查询字段;

    Map<String, Object> map=new HashMap<String, Object>();

    map.put("cj.chuangJianRenWuID", chuangJianRenWuID);

    map.put("HeTongFanHuiID", heTongFanHuiID);

    它通过键值对的方式传值;

    下面就是重点,如何处理拼接参数:

    public static <T> String patchCondition(Map<String, Object> map,Class<T> obj){
            StringBuffer stBuffer=new StringBuffer();//拼接字符串
            Set<String> keySet=map.keySet();
            Iterator<String> iterator=keySet.iterator();//迭代map的键
            stBuffer.append(" Where 1=1");
            while(iterator.hasNext()){
                String Key=iterator.next();
                String name="";
                if (Key.indexOf(".")>-1) {//判断是否是别名,如果是就进行截断,获取后面的字段并且首字母转化为小写
                    String[] strs=Key.split("\\.");
                    name=strs[1].toString();
                    name = name.substring(0, 1).toLowerCase() + name.substring(1);//首字母转化为小写
                }else {
                    name = Key.substring(0, 1).toLowerCase() + Key.substring(1);
                }
                try {
                    Class<?> type = obj.getDeclaredField(name).getType();//获取po中成员变量类型,根据类型判断进行拼接的格式
                    if (type.isAssignableFrom(String.class)) {//判断类型是否为string类型
                        if (Tools.isNotNull(map.get(Key).toString())) {   //是否为空判断,

                           //找相似的数据;

                            //map.get(Key) 是获取和键对应的值;
                           stBuffer.append(" and "+Key+" like '%"+map.get(Key)+"%'");
                        }
                    }
                    if (type.isAssignableFrom(int.class)) {
                        if (!(map.get(Key).toString()).equals("0")) {
                            stBuffer.append(" and "+Key+"="+map.get(Key));
                        }
                    }
                    if (type.isAssignableFrom(boolean.class)) {
                        stBuffer.append(" and "+Key+"="+map.get(Key));
                    }
                } catch (NoSuchFieldException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SecurityException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return stBuffer.toString();//返回拼接好的where条件

        }

     

    //判断为空否

    public class Tools {

    public static boolean isNotNull( String value ) {
            if( value == null || "".equals( value.trim()) || "null".equalsIgnoreCase(value) ) {
                return false;
            }
            return true;
        }

    }

     

    //输出的拼接参数格式,上面的实体类和map集合只是模板,并不是根据上面的po和map模板输出的拼接条件;

            输出的拼接条件:Where 1=1 and ht.HeTongMingChen like '%合同%' and ht.HeTongZhuangTaiID=2 and ht.HeTongFanHuiID=1 and kh.KeHuMC like '%老张%'

    为什么要   1=1呢?

            大家想想  我才拼接参数时 stBuffer.append(" Where 1=1"); 在前面先添加where 的,如果参数都为空 那输出的条件只是 一个where ;这样如果拼接到查询语句中就是这样了:select * from table where  不可能不报异常啊,所有1=1 就是为了杜绝这种情况而存在的,当然不但1=1可以,2=2也可以,类似这些条件的都可以;

           如果嫌弃速度慢就可以把判断值是否为空放到判断类型是否对应外面;让它先判断它为不为空,再进行条件类型的判断;这样可以减少反射获取类型的时间,这里我就不进行更改了;

    注意:我使用的数据库是mysql ,可能别的数据库语句会有一些差异;

    如建议请多多指教,互相交流,共同进步.....

     

    展开全文
  • es java 多条件查询

    万次阅读 2018-07-14 10:48:07
    形如mysql中where条件 a=8 and (b=3 or b=4) BoolQueryBuilder builder = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("a","8")) .must(QueryBuilders.boolQuery() ...

    形如mysql中where条件 a=8 and (b=3 or b=4)

    BoolQueryBuilder  builder = QueryBuilders.boolQuery()
                    .must(QueryBuilders.termQuery("a","8"))
                    .must(QueryBuilders.boolQuery()
                    .should(QueryBuilders.termQuery("b","3"))
                    .should(QueryBuilders.termQuery("b","4")));
    

    欢迎关注我的微信公众号,会同步更新python、java、算法等相关内容!!!
    在这里插入图片描述

    展开全文
  • 同时满足条件,其中有一个字段EQUAL一个值, 一个字段和字符串数组进行比对EQUAL其中一个值, 有一个字段LIKE一个值,有两个字段其中一个字段要满足条件值 应该怎么做
  • 关于java多条件查询SQL语句拼接的小技巧最近在实验室做项目的时候遇到了java多条件查询,翻看了论坛上其他大牛们的博客,都没有给出一个详细的解答。自我探索了一会后给出了下面这样的使用技巧,还算方便,仅供...
  • [img=https://img-bbs.csdn.net/upload/202007/19/1595143780_596814.png][/img] 这个只能查一个条件,两个条件就不可以
  • 在mongo shell中的查询语句是这样的.. db.user.find({"age":{"$gt":5,"$lt":14}})我们用Java连接mongo来实现. mongo库中的数据 代码 package com.java.module.mongo.mongo_test_1; import ...
  • Java多条件复杂查询

    千次阅读 2019-06-09 18:21:37
      查询是我们日常生活中最常见的功能,有的查询很复杂,有的查询很简单,而我要说的查询说它复杂也不复杂,说它简单也不是很简单。下面我先给出我的UI界面和业务需求。   需求是需要根据树形的某个节点查询对应...
  • JAVA多条件模糊查询

    2014-09-13 14:02:37
    JAVA多条件,模糊查询条件同时查询显示结果
  • 主要介绍了java实现mongoDB的多条件查询,具有一定参考价值,需要的朋友可以参考下。
  • Java Web条件查询实例内含有myeclipse源码数据库sql server
  • java条件查询

    千次阅读 2017-12-28 15:04:38
    条件查询  按条件查询分为几个步骤:  1.从页面上获取查询条件  2.将查询条件传到后台相应的方法中去  3.将这些查询条件全部放在一个map中  4.写sql语句进行查询并把结果返回给前端页面上去展示 ...
  • Java ES 多条件过滤查询条件

    千次阅读 2019-02-26 17:44:21
    以下是通过Java程序对 ES 进行多条件的过滤查询条件,有时候查询条件是互相冲突,比如一个需要过滤field的值有以下三种情况: 1.Null 2.空字符串(“”) 3.0 但是我们在满足了Null的情况下无法再继续满足后面...
  • Java多条件和模糊查询

    千次阅读 2019-08-06 20:00:44
    Java实现多条件查询最主要是SQL语句,如何写好SQL语句是关键。 步骤一:从jsp页面获取获取需要查询的字段值,有多少条件查询就获取到多少字段,并且拼接,我这里使用ajax请求方法 var er = $("# “).val();var ey = ...
  • java组合条件查询

    千次阅读 2017-06-08 09:48:12
    public long getOperateLogCounts(Long userId, String day, String ipAddress, String description,String operateTypeName, int limit, int offset) { String querySql = "select count(*) from ir_user.v
  • Java mongodb复杂多条件查询

    千次阅读 2019-07-16 14:24:25
    // 如果查询条件一个字段要匹配个值,类似 and (path like '1001%' or path = '1002' or path like '%1003%') List<Criteria> orgCriList = new ArrayList(); // 创建条件集合 // 添加条件 orgCriList.add...
  • 实际开发中,基本都是组合多条件查询。elasticsearch提供bool来实现这种需求; 主要参数: must:文档 必须 匹配这些条件才能被包含进来。 must_not:文档 必须不 匹配这些条件才能被包含进来。 should:如果...
  • Kudu Java API 条件查询

    千次阅读 热门讨论 2019-05-17 21:40:19
    Kudu Java API 条件查询 spark读取kudu表导出数据为parquet文件(spark kudu parquet) kudu 导入/导出 数据 Kudu 分页查询的两种方式 Kudu 创建主键 链接:https://pan.baidu.com/s/1j...
  • java web条件查询详解

    千次阅读 2019-03-11 23:38:52
    ssm的多条件查询 前言 条件查询是一个必备的内容,这里会根据知识点分为几部分,由简到难 纯servlet的条件查询(简单) 前期环境搭建https://blog.csdn.net/yzj17025693/article/details/88404481 只有一个简单...
  • Java使用Criteria实现多条件查询

    千次阅读 2020-01-09 10:22:48
    前端传入查询条件,根据查询条件查询字段和值使用Java对MongoDB进行多条件筛选。 实现方法: 查询条件传入List<JSONObject>,格式如下: [ { "condition": "is", "key":"name" "value": "xxxxxx...
  • java根据条件查询数据

    2018-10-11 05:57:48
    使用mybatis逆向生成的example类中的方法怎么实现日期之间的查询,不写sql语句
  • Java MongoDB 条件查询及其分组查询

    千次阅读 2014-04-11 19:27:01
     本人一直在做网站运维这块,在统计网站数据的过程中,需要计算PV、UV,时间单位是一天,很自然就需要用到条件查询,查询一天的情况。  先看PV,查询某日总的页面访问量,面向页面计算。 /** * 查询某日PV量...
  • java实现mongoDB的多条件查询

    千次阅读 2016-11-29 17:57:11
    需求:在mongDB客户端,我们很容易实现多条件查询,那么使用java操作时怎么实现呢 客户端代码 db.url.find({index:4,status:0,url:{$regex:"2016"}}).limit(1) java代码主要用到DBObjectBasicDBObject doc5 = ...
  • java web中的多条件查询

    万次阅读 2015-06-24 16:14:27
    所谓多条件查询即为用户输入想要查询的条件,然后根据用户输入的条件进行查询。  当用户有可能什么也不输入,这个条件我们应该考虑到。如果不输入就查询,则我们在页面上显示所有的查询结果,  当用户输入一个...
  • Java Web 中的多条件查询

    千次阅读 2017-10-17 17:08:00
    所谓多条件查询即为用户输入想要查询的条件,然后根据用户输入的条件进行查询。  当用户有可能什么也不输入,这个条件我们应该考虑到。如果不输入就查询,则我们在页面上显示所有的查询结果,  当用户输入一个...
  • Java分页查询&条件查询

    万次阅读 2017-02-24 10:28:18
    1 分页查询 1.1 分页核心 设计一个用于封装当前页所有分页相关的数据的对象,叫分页对象PageBean /** * 分页对象。用于封装当前页的分页相关的所有数据 * @author h * */ public class PageBean { private List...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 346,479
精华内容 138,591
关键字:

java多条件查询

java 订阅