注册了园子账号两个月了,今天刚开通博客,博客页面一片空白,对于有强迫症的我来说实在看得难受,刚好小菜鸟我最近做老师布置的课程设计需要组合查询,一开始我傻傻的拼sql语句,界面看起来乱七八糟啊,请教过老师后知道可以将表单获取的数据存进map中,再动态拼接sql语句。测试了一下发现我之前实在是太傻X了,哦马嘎!
这是我第一篇博客,记录最近的小心得,高手勿喷,谢谢。
表单处理
1
逻辑处理
1 String field1=request.getParameter("field1"); String field2=request.getParameter("field2"); 2 Mapmap=new HashMap (); //用HashMap以键值对的形式存储数据库字段名和赋值 3 if(field1!=null&&!field1.equals("")){ 4 map.put("field1", field1); 5 } 6 if(field2!=null&&!field2.equals("")){ 7 map.put("field2", field2); 8 } 9 StringBuffer sqlBuffer=new StringBuffer("select * from tableName where 1=1");10 for(final Entry entry:map.entrySet()){11 sqlBuffer.append(" and ").append(entry.getKey()).append("=?"); //字符串流动态拼接sql语句12 }13 System.out.println(sqlBuffer.toString());14 pstmt=con.prepareStatement(sqlBuffer.toString(),ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);15 int i=1;16 for(final Entry entry:map.entrySet()){17 pstmt.setObject(i, entry.getValue()); //动态为占位符赋值18 i++;19 }20 pstmt.execute();21 ResultSet rSet=pstmt.getResultSet;22
然后把ResultSet遍历存进list,再在jsp页面遍历显示就行了。
当然还有更好的方法,最近稍微学了下spring和hibernate,发现hibernate实现这个很容易也很方便。
这是我第一篇博客,我现在编程能力不济,要坚持学习,希望我的博客能见证我的进步,渴望成为大牛的那一天,努力吧!