<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MySQL數據庫干貨_29——SQL注入

      SQL注入

      什么是SQL注入

      所謂 SQL 注入,就是通過把含有 SQL 語句片段的參數插入到需要執行的 SQL 語句中,最終達到欺騙數據庫服務器執行惡意操作的 SQL 命令。

      SQL注入案例

      /**
       * SQL注入測試類
       */
      public class SqlInjectTest {
        /**
         * 體現sql注入
         */
        public void sqlInject(String username,int userage){
          Connection connection =null;
          Statement statement =null;
          ResultSet resultSet =null;
          try{
            //獲取連接
            connection = JdbcUtils.getConnection();
            //創建Statement對象
            statement = connection.createStatement();
            //定義sql語句
            String sql ="select * from users where username ='"+username+"' and userage = "+userage;
            System.out.println(sql);
            //執行sql語句
            resultSet = statement.executeQuery(sql);
            //處理結果集
            while(resultSet.next()){
              int userid = resultSet.getInt("userid");
              String name = resultSet.getString("username");
              int age = resultSet.getInt("userage");
              System.out.println(userid+" "+name+" "+age);
      
      
             }
           }catch(Exception e){
            e.printStackTrace();
           }finally{
            JdbcUtils.closeResource(resultSet,statement,connection);
           }
         }
        public static void main(String[] args) {
          SqlInjectTest sit = new SqlInjectTest();
          sit.sqlInject("java' or 1=1 -- ",28);
         }
      }
      
      

      解決SQL注入

        public void noSqlInject(String username,int userage){
            Connection connection = null;
            PreparedStatement ps =null;
            ResultSet resultSet = null;
            try{
              //獲取連接
              connection = JdbcUtils.getConnection();
              //創建PreparedStatement對象
              ps = connection.prepareStatement("select * from users where username = ? and userage = ?");
              //綁定參數
              ps.setString(1,username);
              ps.setInt(2,userage);
              //執行sql
              resultSet = ps.executeQuery();
      
      
              //處理結果集
              while(resultSet.next()){
                int userid = resultSet.getInt("userid");
                String name = resultSet.getString("username");
                int age = resultSet.getInt("userage");
                System.out.println(userid+" "+name+" "+age);
      
      
              }
            }catch(Exception e){
              e.printStackTrace();
            }finally{
              JdbcUtils.closeResource(resultSet,ps,connection);
            }
      
      
         }
      
      

      PreparedStatement操作數據庫時是語句和參數分離的發送給數據庫驅動進行編譯的(這句話很關鍵,面試中很有可能會提及!大家自行理解)

      posted @ 2023-11-15 16:22  Gjq-  閱讀(66)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 亚洲一区在线观看青青蜜臀| 日韩av一区二区不卡在线| 精品视频一区二区福利午夜| AV老司机AV天堂| 内射少妇一区27p| 日韩精品成人区中文字幕| 自拍偷拍视频一区二区三区| 亚洲av日韩在线资源| 中文字幕理伦午夜福利片| 呦系列视频一区二区三区| 老师扒下内裤让我爽了一夜| 天天躁夜夜踩很很踩2022| 一本久道久久综合狠狠躁av| 亚洲av中文乱码一区二| 色伦专区97中文字幕| 国产精品高清国产三级囯产AV| 免费无码va一区二区三区| 国产成人精品亚洲日本在线观看| 南川市| 男女爽爽无遮挡午夜视频| 成人午夜在线观看日韩| 免费人成无码大片在线观看| 国产精品va在线观看h| 开心五月深深爱天天天操| 毛片亚洲AV无码精品国产午夜| 国产又黄又爽又不遮挡视频| 国内自拍视频一区二区三区| 狠狠色综合久久狠狠色综合| 丝袜美腿亚洲综合在线观看视频| 国模精品视频一区二区三区| 色欲AV无码一区二区人妻| 水蜜桃视频在线观看免费18| 久久亚洲综合精品成人网| 波多野结衣久久一区二区| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲狠狠爱一区二区三区| 亚洲国产精品成人av网| 思思久99久女女精品| 亚洲av区一区二区三区| 五月花成人网| 精品av综合导航|