当前位置:   article > 正文

Java如何解决模糊查询(数据库SQL语句,报表开发工具)_java模糊查询

java模糊查询

要实现模糊查询,首先得明白所使用的数据库到底是什么,对应的语句又是什么;
一般而言模糊查询要根据所搜索的内容进行模糊匹配;
关键字like的实现
例如:select * from table where name like %yugi%;

1:java报表开发工具中如何进行模糊查询
模糊查询是利用“_”表示单个字符和“%”表示任意个字符进行匹配的。一些常见的格式如下:

Select * from 表名 where 列名 like '%'; //查询出全部

Select * from 表名 where 列名 like 'x'; //完全匹配查询

Select * from 表名 where 列名 like '_x'; //右为x,前面有一位字符

Select * from 表名 where 列名 like '__x'; //右为x,前面有两位位字符

Select * from 表名 where 列名 like 'x___'; //左为x,后面有两位位字符

Select * from 表名 where 列名 like '%x'; //右为x,前面可以有任意位字符

Select * from 表名 where 列名 like 'x%'; //左为x,后面可以有任意位字符

Select * from 表名 where 列名 like '%x%'; //中间为x,左右都可以有任意位字符

结合参数的模糊查询(用${name}代表上述的x):

Select * from 表名 where 列名 like '${name}';
Select * from 表名 where 列名 like '%${name}'
  • 1
  • 2

以此类推。

2:单条件模糊查询
单条件模糊查询,就是根据一个字段查询,模糊匹配%变量%

public class SalDaoImpl extends DbConn{public List<Sal> findByMap(String empno) {
  List<Sal> list =new ArrayList<Sal>();
  if(conn!=null) {
   try{
    String sql="select * from [dbo].[sal] where empno  like '%"+empno+"'";
    Statement stmt = conn.createStatement();     
    ResultSet rs = stmt.executeQuery(sql);     
    while(rs.next()){
     Sal r =new Sal();
     r.setId(rs.getInt("id"));
     r.setEmpno(rs.getString("empno"));
     r.setName(rs.getString("name"));
     r.setCreateDate(rs.getString("createDate"));
     r.setSal(rs.getDouble("sal"));
     r.setSalDecrease(rs.getDouble("salDecrease"));
     list.add(r);
    }
    rs.close(); 
   }catch(Exception e){
    e.printStackTrace()}
  }
  return list;
  }

public static void main(String args[]){

List<Sal> list=new SaoImpl().findByMap("10005");

}

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

2:多条件模糊查询

根据多个参数来查询,也就是多条件查询

public class SalDaoImpl extends DbConn{public List<Sal> findByMap(String empno,String createDate) {
  List<Sal> list =new ArrayList<Sal>();
  if(conn!=null) {
   try{
    String sql="select * from [dbo].[sal] where empno  like '%"+empno+"'and createDate like'%"+createDate+"'";
    Statement stmt = conn.createStatement();     
    ResultSet rs = stmt.executeQuery(sql);     
    while(rs.next()){
     Sal r =new Sal();
     r.setId(rs.getInt("id"));
     r.setEmpno(rs.getString("empno"));
     r.setName(rs.getString("name"));
     r.setCreateDate(rs.getString("createDate"));
     r.setSal(rs.getDouble("sal"));
     r.setSalDecrease(rs.getDouble("salDecrease"));
     list.add(r);
    }
    rs.close(); 
   }catch(Exception e){
    e.printStackTrace();
   }
  }
  return list;
 }
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/499102
推荐阅读
相关标签
  

闽ICP备14008679号