吊桶的方法:
String db;
for(int i=1;i<=100;i++){ if (i < 10) { db = "00" + i; } else if (i >= 10 && i < 100) { db = "0" + i; }else{ db = "100"; } HttpSession session = request.getSession(); session.setAttribute("db", db); sflist = pnd.queryPhoneNumber(phoneNumber, request, response); request.getSession().setAttribute("sflist", sflist); }
实现类:: SF sf =null;
PreparedStatement ps=null;// ResultSet resl=null; Connection conn=null; List sflist = new ArrayList(); try{
Class.forName("com.mysql.jdbc.Driver");
HttpSession session = request.getSession(); String db = (String)session.getAttribute("db"); System.out.println(db); conn=DriverManager.getConnection("jdbc:mysql://192.168.20.236:3306/express"+db,"root" ,"123456"); System.out.println("链接:::"+"jdbc:mysql://192.168.20.236:3306/express"+db); ps=conn.prepareStatement("select * from sf where f29=? or f30=? or f40=? or f41=?"); ps.setString(1, phoneNumber); ps.setString(2, phoneNumber); ps.setString(3, phoneNumber); ps.setString(4, phoneNumber); resl=ps.executeQuery();//返回查询的数量。 // 查询 的时候 一般都用while循环或者if循环; while(resl.next()){ sf=new SF(); sf.setF1(resl.getString("f1")); sf.setF2(resl.getString("f2")); sf.setF3(resl.getString("f3")); sf.setF4(resl.getString("f4")); sf.setF5(resl.getString("f5")); sflist.add(sf); 返回的sflist,我最后的效果是::每查询一个数据库,就在页面显示在当前数据库里面查到的符合条件的信息。。 但是现在是,它全部查完才一块显示。。而且只显示最后一个数据库查询到的信息。之前的被覆盖。。 怎么破!!
代码太片段了
sflist = pnd.queryPhoneNumber(phoneNumber, request, response);这是每次新的?
来不及的,后台循环是那么快的事情,就算来得及也没有任何必要。
要处理数据,封装成类,通过网络再传到前台,前台肯定还要在遍历解析。
直接一次性数据库查完,然后返回个list给前台,前台列个
table
再循环遍历回来不就好了。为啥非要查一条显示一条呢。