JDBC複習筆記

2021-09-22 20:06:32 字數 2684 閱讀 6342

- 登入: mysql -h locahost -u root -p 123456

- 建立資料庫: create database 資料庫名稱

- 顯示全部資料庫: show databases;

- 刪除資料庫: drop database 資料庫名稱

- 建立表:create table 表名(欄位名,型別(大小) primary key auto_increment);

- 刪除表:drop table 表名,表名,表名;

3、curd(create update read delete)

- 新增: insert into 表名(字段,字段) values(值,值);

- 刪除: delete from 表名 where id = "";

- 查詢: select * from 表名;

- 修改: update 表名 set 字段 = "",字段 = 「」 where id = "";

4、異常丟擲

new throw exception();

5、jdbc:

步驟:1、 匯入資料庫驅動 class.forname("com.mysql.jdbc.driver");

2、 建立資料庫連線 connection c = drivermanager.getconnection();

3、 獲取資料庫連線 statement s = c.createstatement(sql) / preparedstatement ps = c.preparedstatement(); //preparedstatement是statement的子類

4、 執行 resultset rs = s.execute() / resultset rs = ps.executeupdate();

5、 遍歷結果集

- 多條資料 - 一條資料

while(rs.next) }

6、建立使用者名稱和密碼的查詢方法

public boolean login(string username, string password)catch(exception e)

string sql = "select * from user where username = ? and password = ?";

try(connection c = drivermanager.getconnection("jdbc:mysql://localhost:3306/web01?characterencoding=utf-8","root","123456");

preparedstatement ps = c.preparestatement(sql))else

}catch(exception e)

return false;

}7、sql注入

如果使用statement物件可能會出現問題

假設: sql = select * from user where username = ' " + username+ "' and password = '" + password +"';

傳入的值是 ("cl,"kok' or '1' = '1"); 那就無論如何都成立。程式就存在漏洞

8、分頁查詢

string sql = "select * from user limit ?,?";

頁數:pagenumber

每頁顯示條數: pagecount

例: 第8頁 每頁顯示9條

計算: (8 -1) * 9 = 63

9、jdbcutils

public connection getconnection()catch(exception e)

return null;

}10、事務

connection c = jdncutils.getconnection();

c.setautocommit(false); //開啟事務

c.commit();

11、連線池(c3p0、dbcp)

c3p0:

步驟:- 匯入 jar包

- 在static**塊初始化

private final string url = "jdbc:mysql://localhost:3306/web01?characterencoding=utf-8";

private final string user = "root";

private final string password = "123456";

static

public connection getconnection()catch(exception e)

return null;

}dbcp:

private final string url = "jdbc:mysql://localhost:3306/web01?characterencoding=utf-8";

private final string user = "root";

private final string password = "123456";

static

public static connection getconnection() catch (sqlexception e)

return null;

}

複習(jdbc跨平台方案)

定義 public static final properties pro new properties 讀取配置檔案的map 定義static 首次使用工具類時,載入驅動 inputstream is jdbcutil.class.getresourceasstream 路徑 通過復用本類自帶流,...

jdbc知識點複習(二)

事務使指一組最小邏輯操作單元,裡面有多個操作組成。組成事務的每一部分必須要同時提交成功,如果有乙個操作失敗,整個操作就回滾。原子性 atomicity 原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。一致性 consistency 事務必須使資料庫從乙個一致性狀態變換到...

jdbc複習第三天

jdbc事務併發產生的問題和事務隔離級別 1,髒讀 dirty read 讀取到了沒有提交的資料。2,不可重複讀 unprpeatable read 兩次讀取到了不同的資料,就是要保持在同一時間點上兩次讀取到的資料相同,不能夠使查詢資料時進行改變。3,幻讀 phantom 在兩次查詢同一時間點資料時...