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对面的女孩看过来课程

时间: 2024-10-28 14:36:27

JDBC中,如何动态的设置查询条件的相关文章

Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据

1. 1.?配置条件字段@Conditional 1 1 2. 2.?配置条件字段显示类型为[email protected](displayType?=?displayType.rang,?rangStart?=?rang.start,?rangEnd?=?rang.end,op=op.range) 1 3. #----show  condition  page  list 1 4. 提交条件查询表单by dwr 1 5. @filter  ::   set filter condition 

having()方法设置查询条件,where()设置查询条件

having  和 where区别 ① 使用有先后顺序 ② where  price>100     having price>100 ③ where  设置条件,字段必须是数据表中存在的字段 ④ having 设置条件,字段必须是select语句查询出来的字段可以使用

动态拼接LINQ 查询条件

本文章转载:http://www.cnblogs.com/wangiqngpei557/archive/2013/02/05/2893096.html 参考:http://dotnet.9sssd.com/entfwk/art/960 http://www.cnblogs.com/killuakun/archive/2008/08/03/1259389.html http://www.cnblogs.com/snowdream/archive/2008/07/18/1246308.html 以往

在PLSQL中不能使用中文作为查询条件查询数据

解决方法:  在oracle服务端的注册表中找到oracle-->key_oradb11g_home1,在右侧找到NLS_LANG,将其数值数据改为SIMPLIFIED CHINESE_CHINA.AL32UTF8.

EF Core 中实现 动态数据过滤器

前言 在项目开发中,我们很多时候都会设计  软删除.所属用户 等等一系列字段 来方便我们在业务查询的时候进行各种过滤 然后引申的问题就是: 在业务查询的时候,我们要如何加上这些条件?或者动态禁用某些查询条件呢? EF Core自带的全局过滤查询功能 EF Core提供了一个HasQueryFilter 供我们在查询的时候进行预置部分筛选条件 例如:     builder.HasQueryFilter(x => !x.IsDelete); 这样查询的时候  EF Core 会自动帮我们实现过滤

Atitit.列表页and查询条件的最佳实践(1)------设定搜索条件and提交查询and返回json数据

Atitit.列表页and查询条件的最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1.?配置条件字段@Conditional 1 1 2. 2.?配置条件字段显示类型为[email protected](displayType?=?displayType.rang,?rangStart?=?rang.start,?rangEnd?=?rang.end,op=op.range) 1 3. #----show  condition  page  list 1 4.

SQLServer复合查询条件(AND,OR,NOT)对NULL值的处理方法

在SQL的3值逻辑下,一个查询条件可以产生以下三种情况:TRUE,FALSE,NULL.只有那些满足WHERE子句的值是TRUE的记录才出现在结果表中. NULL值影响查询条件的结果,并且结果很微妙. 以下是SQL中AND,OR,NOT的真值表. 表1    AND的真值表 TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL 表2    OR的真值表 TRUE FALSE NULL T

掌握iOS8中的动态文本

原文链接 : Swift Programming 101: Mastering Dynamic Type in iOS 8 原文作者 : Kevin McNeish 译文出自 : 开发技术前线 www.devtf.cn 转载声明: 本译文已授权开发者头条享有独家转载权,未经允许,不得转载! 译者 : kmyhy Apple声称鼓励第三方App能够支持动态文本.但是,如果你尝试在App中实现这个特性,你会发现其中有很多坑(例如静态cell和定制cell样式).在本文中,我们将介绍动态文本的机理以及

数据库where查询条件是中文时查找无结果的解决方法

数据库中是中文,但是查询条件是中文怎么也查不出来. 原来使用的数据库是英文版本的,所以数据库中的字段值是unicode编码的 首先看看字段类型是不是 : char ->nchar  varchar ->nvarchar  text ->ntext 然后在查询时加入N:select * form table where city=N'上海'