乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      jSP 通過JDBC操作數(shù)據(jù)庫的一些坑

       鴻蛟家平 2021-07-18

         最近想著給公司的一些賬號密碼做一個管理,就想做一個內(nèi)部網(wǎng)站。在處理數(shù)據(jù)庫的時候,jdbc的PreparedStatement 給了我很多坑。在此記錄一下:

      1,查詢:比較順利

      String sql = "select * from  pa_yc";

      pstmt=conn.prepareStatement(sql);

      rSet=pstmt.executeQuery();

      while (rSet.next()) {

      RemoteControlMsg remoteControlMsg=new RemoteControlMsg();

      int id=rSet.getInt("id");

      }

      2,更新:坑 一堆堆

          第一個坑:

        String sql="UPDATE pa_yc set (pc_name = ?,xrk_no=?,xiangrikui_pwd=?,todesk_no=?,todesk_pwd=?) WHERE id = ?;";

      Object[] objects = new Object[] {remote.getId(),remote.getPc_name(),remote.getXiangrikui_no(),remote.getXiangrikui_pwd(),remote.getTodesk_no(),remote.getTodesk_pwd()};

      pstmt = conn.prepareStatement(sql1);

      for(int i=0;i<objects.Length();i++){

      pstmt.setObject(i+1,objects[i]);

      }

      正常情況下,這種方式是可以的。但是我用的時候始終有錯,折磨了好久,最后發(fā)現(xiàn) sql語句是有限制的。字符串太長就會被截斷舍棄。

      然后我想著分開更新信息:

      String sql1="update pa_yc set pc_name =? where id =?;";

      String sql2="update pa_yc set xrk_no=? WHERE id =?";

      String sql3="update pa_yc set xrk_pwd=? WHERE id =?";

      String sql4="update pa_yc set td_pwd=? WHERE id =?";

      String sql5="update pa_yc set td_no=? WHERE id =?";

      Object[] objects = new Object[] {remote.getId(),remote.getPc_name(),remote.getXiangrikui_no(),remote.getXiangrikui_pwd(),remote.getTodesk_no(),remote.getTodesk_pwd()};

      try {

      pstmt = conn.prepareStatement(sql1);pstmt.setObject(1, objects[1]);pstmt.setObject(2, objects[0]);

      pstmt.execute();pstmt.close();pstmt=null;

      pstmt = conn.prepareStatement(sql2);pstmt.setObject(1, objects[2]);pstmt.setObject(2, objects[0]);

      pstmt.executeUpdate();pstmt.close();pstmt=null;

      pstmt = conn.prepareStatement(sql3);pstmt.setObject(1, objects[3]);pstmt.setObject(2, objects[0]);

      pstmt.executeUpdate();pstmt.close();pstmt=null;

      pstmt = conn.prepareStatement(sql4);pstmt.setObject(1, objects[4]);pstmt.setObject(2, objects[0]);

      pstmt.executeUpdate();pstmt.close();pstmt=null;

      pstmt = conn.prepareStatement(sql5);pstmt.setObject(1, objects[5]);pstmt.setObject(2, objects[0]);

      pstmt.executeUpdate();pstmt.close();pstmt=null;

      }

      坑的地方:1,sql 中,set xxx = ?   這個地方 不能有”()“

      2,在每一個pstmt.executeUpdate();后面,都需要pstmt.close();pstmt=null;

      3,增加:比較順利,按照正常的方式

      String sql = "insert INTO pa_yc(pc_name,xrk_no,xrk_pwd,td_no,td_pwd) values (?,?,?,?,?);";

      try {

      pstmt = conn.prepareStatement(sql);

      pstmt.setString(1, remoteControlMsg.getPc_name());

      pstmt.setString(2, remoteControlMsg.getXiangrikui_no());

      pstmt.setString(3, remoteControlMsg.getXiangrikui_pwd());

      pstmt.setString(4, remoteControlMsg.getTodesk_no());

      pstmt.setString(5, remoteControlMsg.getTodesk_pwd());

      pstmt.executeUpdate();

      } catch (SQLException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      }finally {

      Close();

      }

        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多