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

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

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

      MySQL 數據庫-JDBC

      1.事務

      事務(Transaction):要么都成功,要么都失敗
      事務原則:ACID原則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability))

      • 原子性:要么都成功,要么都失敗
      • 一致性:事務前后的數據完整性要保證一致(如,轉賬操作后,兩個人的總額不變)
      • 持久性:事務一旦提交不可逆,被持久化到了數據庫中(事務沒提交,恢復到原狀態;事務提交了,持久化到數據庫的)
      • 隔離性:針對多個用戶同時操作,主要排除其他事務對本次事務的影響

      臟讀:指一個事務讀取了另外一個事務未提交的數據
      幻讀:指在一個事務內讀到了別的事務插入的數據,導致前后讀取不一致

      2.數據庫備份

      導出:

      • mysqldump -hlocalhost -uroot -pxxx database_name table_name1 table_name2 > path/new.sql
      • mysqldump -hlocalhost -uroot -pxxx database_name > path/new.sql

      導入:

      • source path/source.sql(登錄情況下)
      • mysql -u用戶名 -p密碼 庫名 < 備份文件

      3.JDBC

      步驟:

      1. 加載驅動
      2. 連接數據庫 DriverManager
      3. 獲得執行SQL的對象 Statement
      4. 獲得返回的結果集
      5. 釋放連接
      JDBC 連接代碼
      import java.sql.*;
      
      public class JdbcFirstDemo {
          public static void main(String[] args) throws ClassNotFoundException, SQLException {
              // 1.加載驅動
              Class.forName("com.mysql.jdbc.Driver"); // 固定寫法,加載驅動
              // 2.用戶信息和 url
              String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf-8&useSSL=true";
              String username = "root";
              String password = "root";
              // 3,連接成功,數據庫對象
              Connection connection = DriverManager.getConnection(url, username, password);
              // 4.執行SQL的對象
              Statement statement = connection.createStatement();
              // 5.執行SQL的對象,去執行 SQL,可能存在結果,查看返回結果
              String sql = "select * from users";
              ResultSet resultSet = statement.executeQuery(sql);//返回的結果,結果集中封裝了所有結果
              while (resultSet.next()){
                  System.out.println("id=" + resultSet.getObject("id"));
                  System.out.println("name=" + resultSet.getObject("name"));
                  System.out.println("age=" + resultSet.getObject("age"));
                  System.out.println("=======================");
              }
              // 6.釋放連接
              resultSet.close();
              statement.close();
              connection.close();
          }
      }
      

      執行SQL對象

      statement.executeQuery(sql);// 查詢操作
      statement.execute(sql);// 執行任何SQL
      statement.executeUpdate(sql);//更新、插入、刪除都用這個,返回一個受影響的行數

      一般將數據庫的連接配置都放在 .properties 文件中

      4.SQL注入問題

      4.1.SQL 代碼問題

      問題代碼:String sql = "select * from users where `NAME`='"+username+"' AND `password` ='"+password+"'";

      相當于:username 賦值為 'or 1=1 --+
      本質:會將值拼接到SQL語句中

      4.2.PreparedStatement 對象

      通過預編譯防御SQL注入
      本質:把傳遞進來的參數當作字符

      防止SQL注入
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      
      public class SQLInjection {
          public static void main(String[] args) {
              Connection conn = null;
              PreparedStatement st = null;
              try{
                  conn = JdbcUtils.getConnection();
      
                  // 使用 ? 占位符代替參數
                  String sql = "insert into users(id,name,password) values(?,?,?)";
                  st = conn.prepareStatement(sql);// 預編譯SQL,先寫SQL,然后不執行
                  // 手動給參數賦值
                  st.setInt(1,1);// id
                  st.setString(2,"xiaoming");// name
                  st.setString(3,"123456");// password
                  // 執行
                  int i = st.executeUpdate();
                  if (i > 0) System.out.println("插入成功!");
              } catch (Exception e){
                  e.printStackTrace();
              }finally {
                  JdbcUtils.release(conn, st, null);
              }
          }
      }
      
      posted @ 2024-05-27 21:13  落落的學習  閱讀(42)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 午夜免费无码福利视频麻豆| 亚洲av无码精品色午夜蛋壳| 精品一区二区三区在线观看l| 亚洲韩国精品无码一区二区三区 | 老司机亚洲精品一区二区| 亚洲精品第一区二区三区| 亚洲人妻精品中文字幕| 最新亚洲av日韩av二区| 天堂mv在线mv免费mv香蕉| 亚洲无av码一区二区三区| 国产精品视频露脸| 国产精品自拍中文字幕| 欧美疯狂xxxxbbbb喷潮| 国产老熟女国语免费视频| 国产偷窥熟女高潮精品视频| 无码人妻熟妇av又粗又大| 精品国产伦理国产无遮挡| 成人网站免费观看永久视频下载| 欧美猛少妇色xxxxx猛叫| 人禽无码视频在线观看| 欧美一本大道香蕉综合视频| 久久国产精品久久精品国产| 狠狠色噜噜狠狠狠777米奇小说| 男女性高爱潮免费网站| 成年性午夜免费视频网站| 亚欧洲乱码视频一二三区| 99久久婷婷国产综合精品青草漫画| 日韩一区在线中文字幕| 亚洲欧洲色图片网站| 精品无码一区二区三区电影| 国产精品久久久久7777| 亚洲天堂av在线免费看| 韩国午夜理伦三级| 国产在线无码精品无码| 四虎永久免费精品视频| 上司人妻互换中文字幕| 国产乱色熟女一二三四区| 伊人久久大香线蕉成人| 国产老妇伦国产熟女老妇高清| 人人爽人人爽人人片av东京热| 亚洲av成人一区在线|