您的位置:首页 > 数据库

工作中遇到的问题(一)

2007-03-21 12:46 459 查看
1:replaceAll("",""),这个方法很有意思,a:它的第一个参数是正则表达式,所以如果要替换的字符串包括特殊字符的话要小心;
  b:举例说明下:eg:
   String a = "<!wefwf>";
   String b = a.replaceAll("fwf>","bb");
   这时候a的值还是<!wefwf>,并没有变,而b的值就是a被替换以后的值;所以要想得到a被替换以后的字符串,就要把a.replaceAll("fwf>","bb")
   整体付值给一个字符串变量;
   
2:一个表单里有两个或多个submit,怎么判断提交的是哪个呢?
   a:第一种情况:value为null,按钮是一个图片
   只要在<form>下加一个<input type="hidden" name="act">,然后在每个submit里边加上onclick事件 ,去给act付值就可以了,然后根据act值的不同判断提交的是那个submit
   <input type=submit class="buttonSearch" value='' name="subSearch" onclick="form1.act.value='search'"> 
      <input type=submit class="buttonAdd" value='' name="subAdd" onclick="form1.act.value='add'"> 
      <input type=submit class="buttonAdd" value='' name="subCreate" onclick="form1.act.value='create'">
      b:第二种情况,value可以附值,这很easy,只要根据他们的值不同就可以判断提交的是哪个submit了。
     
3: 读写文件要记的关闭。

4:如何去除List中的重复值?
  eg:for(int modelNum = 0;modelNum < listarr[2].size(); modelNum++){//去掉重复的model
          if (!modelList.contains(listarr[2].get(modelNum))) {
            modelList.add(listarr[2].get(modelNum));
          }
        }
    新得到的modeList就是listarr[2]中去除了重复值的List
   
5:  最重要的一点,写程序一定要避免多次连接数据库,尤其是不要在循环中连数据库,能不连尽量不连,变通办法就是多使用Map,当然这样的
  Map是比较小的,占用内存较小的,否则大了也不合算。
  
6:还有就是这个程序写的很有水平(肖工写的),多研究下,以后也要多用。

  public ArrayList[] queryByFilename(String file) throws SQLException {
      Connection conn = null;
      Dbadmin db = new Dbadmin();
        ArrayList[] list = new ArrayList[9];//初始化一个list集合数组
        for (int i = 0; i < 9; i++) {    //查询结果是几列,这里的9就为几
            list[i] = new ArrayList(200);//初始化每一列相对应的list
        }
        try {
            conn = db.getConn();
            Statement st = conn.createStatement();

            ResultSet rs = st.executeQuery("select * from tbl_system_setup t where FILENAME = '" + file+"'");
            while (rs.next()) {
                for (int i = 0; i < 9; i++) {
                    list[i].add(rs.getString(i + 1));//将数据库中查询得到的每一列的值放到相应的list[i]中
                }
            }
            for(int j = 0 ; j < list[0].size(); j++){
              funHrefMap.put(list[3].get(j),list[4].get(j));
              funImgMap.put(list[3].get(j),list[5].get(j));//将数据放到map中,方便以后查询,避免多次连接数据库
              fontMap.put(list[1].get(j),list[7].get(j));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            db.closeConn(conn);
        }
        return list;
  }
 
7:定义框架是否可以拉伸,是用frame中的noResize属性定义的,默认为true,是可以拉伸的;但是他的边框大小不要设为0,否则当鼠标移动到两个
  框架中间的时候不会出现箭头。
 
8:设置背景图片是否可以拉伸,只要在要设置的对象里的style中加上一个滤镜。eg:
   要让一个td的背景色随着td的大小拉伸,那这个td的应该这样定义:<td style"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/menu_bg.gif', enabled=true, sizingMethod='scale')">
   同时他所在的table的width属性要设置为100%,否则还是不能拉伸。
   同时还要body中加上leftmargin=0 topmargin=0这两个属性。这样就可以了。
   但这时又会出现一个问题,那就是初始化的时候图片的大小只显示在他上边的所显示的文字的长度,解决的办法是在文字的前后边都加上几个
   空格,这样显示的图片就会达到我们想要的结果了。但还是没有从根本上解决问题,不是太好,不知道还有没有别的解决办法。 

9:全选
 function checkAllTrue() {
              var e = event.srcElement;
              var checks = document.all.tags("INPUT");
              for(var i=0;i<checks.length;i++) {
                if(checks[i].type == "checkbox") {
                  checks[i].checked = true;
                }
              }
            }
           
10:oracle分页
  SELECT t2.*
  FROM (SELECT  ROWNUM RNO, t1.*
         FROM    (查询语句) t1
         WHERE   ROWNUM <= #endRow#) t2
   WHERE RNO >= #startRow#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息