写了个最low的"多"条件查询,JDBC实现,记录一下。
来源:互联网 发布:filezilla是什么软件 编辑:程序博客网 时间:2024/05/10 14:19
第一步: 要什么自行车! 各种连接池,jar包先导进去,保证能连接数据库。
第二步: 写jsp页面,在写jsp的时候,缺什么就加什么。
- 前台交互界面,将表单内容提交到doSelect.jsp页面。
<form action="doSelect.jsp" method="post"> 性别:<input type="text" name="sex" /><br> 部门:<input type="text" name="deptno" /><br> <input type="submit" value="提交" /> </form>
- 后台处理界面,即doSelect.jsp,此页面处理大部分逻辑,对于我这种没逻辑的人来说,真是个挑战!
<% request.setCharacterEncoding("UTF-8"); //在这里,用一个StringBuffer来装sql语句,当前台没有输入的时候默认查询所有。 StringBuffer sb = new StringBuffer("select * from emp where 1=1 '假装空格' ");//这里一定要留出空格,要不然SQL语句就挤在一起了!!! //用Map来收容前台传来的字段 Map<String,Object> map = new HashMap<String,Object>(); String sex = request.getParameter("sex"); String deptno = request.getParameter("deptno"); //在这里展开判断,如果前台传来的字段非空,则放到map中 if(!(sex.equals(null)) && !(sex.equals(""))){ sb.append(" '假装空格' and sex=?"); map.put("sex", sex); } if(!(deptno.equals(null)) && !(deptno.equals(""))){ sb.append(" '假装空格' and deptno=?"); map.put("deptno", Integer.valueOf(deptno)); } //在这里要用前面得到的sql和字段取数据库的数据,所以去写个Dao //(想在这里建个传送门,走进Dao的世界,无奈不会)去下面看Dao吧 EmpDao ed = new EmpDao(); List<Emp> list = ed.getByDynamicSel(sb, map);----------------------------------------------------------- //参数为doSelect.jsp页面判断完后的sql语句和字段 public List<Emp> getByDynamicSel(StringBuffer sb,Map<String, Object> map){ ... //把sb里的内容(sql语句)赋值给sql String sql = sb.toString(); ... //在这里又要展开生死攸关的判断,如果前台界面有输入,并且也被放入了Map,那么就要用它来填充 '?'. //在这里,突然发现了一个BUG,不过我很开心(哭~) //要是第一个字段为空,那么,就只有一个'?',而且它是第一个 //下面却被固定为2 BUG前: if(map.containsKey("sex")){ ps.setString(1,(String)map.get("sex")); } if(map.containsKey("deptno")){ ps.setInt(2, (Integer)map.get("deptno")); } ... BUG后: int index = 0; try { conn = DataBaseUtil.getConn(); ps = conn.prepareStatement(sql); if(map.containsKey("sex")){ ps.setString(1,(String)map.get("sex")); index = 2; }else{index = 1;} if(map.containsKey("deptno")){ ps.setInt(index, (Integer)map.get("deptno")); } } //这要是多几个条件基本就废了... ``` ``` //最后根据条件得到的集合扔到show.jsp页面显示就好了. if(list.size() >= 1){ request.setAttribute("emps", list); request.getRequestDispatcher("show.jsp").forward(request, response); }%>
水平有限,希望以后也是大神,如果有人来看并提出问题就再好不过了
阅读全文
0 0
- 写了个最low的"多"条件查询,JDBC实现,记录一下。
- LINQ实现多个条件的查询
- 无奈自己写了一个简单的JDBC查询缓存,分享一下
- 第一个存储过程,写了很长时间,记录一下
- angular实现模糊查询实例,后台就不需要单独写模糊查询的条件了
- jdbc获取符合查询条件的记录数据---ResultSet
- 有史以来写的最low的接口
- JDBC的多条件动态查询
- JDBC的多条件动态查询
- 多未知条件的jdbc查询
- 记录一下-自己写的一个项目夭折了
- 碰到个字符串处理的sql,搞定了,记录一下
- 更新了原先写的JDBC查询缓存
- JDBC多条件组合查询
- 多个条件的查询建立索引
- Mybatis多个条件的查询
- asp.net(C#)中实现多个DropDownList及多个TextBox的多条件查询
- 考完试了,写个软件庆祝一下
- ps备忘2
- php 不等待返回的实现方法(异步调用)
- 堆排序(heapsort)
- jQuery基础教程第四版 第3章学习笔记
- 深度学习与计算机视觉 看这一篇就够了
- 写了个最low的"多"条件查询,JDBC实现,记录一下。
- ListView与BaseAdapter的优化
- SpringMvc 文件上传
- DeepLearning.ai学习笔记(一)神经网络和深度学习--Week3浅层神经网络
- HTML5里video标签支持哪些格式的视频文件?
- Android 开发调用相机拍照如何获取清晰照片
- D30 Scala自定义排序和stage分区
- Proguard相关知识
- 牛客网编程题输入输出