JDBC學習筆記(一)基本流程

2021-08-15 20:52:18 字數 3769 閱讀 9769

一、用jdbc連線mysql資料庫基本流程

//1.註冊驅動

class.forname("com.mysql.jdbc.driver");

//2.建立連線

string url="jdbc:mysql://localhost:3306/news";

string user="root";

string password="qiuqiu";

connection conn=drivermanager.getconnection(url, user, password);

//3.建立語句

statement stmt=conn.createstatement();

//4.執行語句

string sql="select id,username,password,email,usertype from news_user";

resultset rs=stmt.executequery(sql);

//5.處理結果

while(rs.next())

//釋放資源

rs.close();

stmt.close();

conn.close();

二、各流程詳解

1. 註冊驅動(只做一次),有三種方式:

<%

/*1.註冊驅動(只做一次),有三種方式*/

//方式一(推薦使用):

class.forname("com.mysql.jdbc.driver");

//方式二:

system.setproperty("jdbc.drivers", "com.mysql.jdbc.driver");

//方式三:

drivermanager.registerdriver(new com.mysql.jdbc.driver());

/*注意:

其中方式三,會造成drivermanager中產生兩個一樣的驅動  並會對具體的驅動類產生依賴  所有不推薦使用

方式二雖然不會對具體的驅動類產生依賴  但是註冊不太方便  因此也很少用

方式一不會對具體的驅動類產生依賴  書寫也比較方便  推薦使用

*//*2.建立連線(connection)*/

//a.**格式

connection conn=drivermanager.getconnection(url, user, password);

格式/*jdbc:子協議:子名稱//主機名:埠/資料庫名?屬性名=屬性值&...如果主機名與埠號是預設值  主機名和埠號可省略:jdbc:子協議:子名稱///資料庫名?屬性名=屬性值&...*/

/*user,password可以用"屬性名=屬性值的方式告訴資料庫"*/

/*其他引數如:useunicode = true&characterencoding=gbk.*/

/*3.建立可執行sql語句的物件(statement)*/

statement stmt=conn.createstatement();

/*4.執行sql語句  用resultset物件接受執行結果*/

resultset rs=stmt.executequery("select id,username,password,email,usertype from news_user");

/*5.rs.next()遍歷查詢到的結果*/

while(rs.next())

/*6.釋放資源*/

rs.close();

stmt.close();

conn.close();

一、statement物件執行的sql語句需要與字串變數進行連線的時候,傳遞特殊的字元就會導致sql注入問題

string sql = "select * from user where id = ? || name = ? || age = ?";

preparedstatement ps = conn.preparestatement(sql);

// 把sql語句中的第乙個問號替換為變數id  ps.setint(1, id);

// 把sql語句中的第二個問號替換為變數name  ps.setstring(2, name); 

// 把sql語句中的第三個問號替換為變數age   ps.setint(3, age);

// 注意在查詢時不能帶引數,否則會呼叫ps的父類statement的executequery方法

resultset rs = ps.executequery();

三、preparedstatement相對statement的優點

1. preparedstatement沒有sql注入的問題。

2. statement會使資料庫頻繁編譯sql, 可能造成資料庫緩衝區溢位。

3. 資料庫和驅動可以對preparedstatement進行優化(只有在相關聯的資料庫連線沒有關閉的情況下有效).

二、從資料庫讀取大文字資料寫入到檔案中

方式一:直接把資料儲存到字串中

wt.close();方式二:通過resultset物件rs獲取輸入流讀取資料,建立輸出流寫到檔案

方式三、通過clob物件獲取輸入流

jdbc基本流程

public class jdbctest03 else login yinweidf 123456 or 1 1 change 轉賬 張三給李四轉賬100元 保證在同乙個事務中,通知成功,同時失敗 事務預設自動提交,設定手動提交 public static void change else cat...

JDBC學習筆記

size medium color red 本節jdbc的操作學習大致分為 color size size medium color red list 資料庫的裝載和連線 資料庫的增刪改查 資料庫的預編譯 資料庫的事務管理 list color size 下面直接上 了,還是 比較實在 以mysql...

JDBC 學習筆記

本質其實就是官方定義的一套操作所有關係型資料庫的規則,即介面。各個資料庫廠商實現這套介面,提供資料庫驅動jar包。我們可以使用這套介面 jdbc 程式設計,真正執行的 是驅動jar包中的實現類 匯入驅動jar包 註冊驅動 class.forname com.mysql.jdbc.driver 獲取資...