關於增刪改查的個人理解 連接數據庫只需三步

鏈接數據庫進行增刪改查,我個人認爲需要以下三步

第一步.毫無疑問DBUtil

DButi非常簡單隻有三行代碼
第一行沒啥好說的就不解釋了

 Connection conn = null;

第二行加載驅動
Class.forName根據"com.microsoft.sqlserver.jdbc.SQLServerDriver"找到Driver類讓它運行以便於接下來我們要連接數據庫的操作

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

第三行連接數據庫
Connection的中文意思是:聯繫 連接
這行代碼就是獲取一個數據庫的連接,然後就可以根據這個連接對數據庫操作

conn= DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=db","sa","1");

第二步.sql語句

一定要理解明白sql語句,然後才能根據sql語句得到你想要的數據,幾個常用的sql語句
1.查找

select *  from users where  id=1

上面這段sql語句譯爲:在users表中查找id爲1的那條記錄的所有字段
重點:語法格式,*號代表這條記錄的所有字段,當然你也可以查找特定的字段比如,我要查找users表中id爲1的name屬性和age屬性select name ,age from users where id=1要記住字段名要用“,”號隔開,再比如我要查找users表中name屬性是“張三”,age屬性是15的那條記錄select * from users where name = '張三' and age = 15要記住多個條件要用and或or連接,如果要查找整張表,那就跟簡單了 select * from users不需要where條件,譯爲:查詢users表中的數據,沒有任何條件,只要是users表中的信息都符合要求。
一般作用於:登入驗證
2.刪除

delete from users where id=15

上面這條語句譯爲:刪除users表中id爲15的記錄
重點:語法格式,刪除條件一定要準確不然就會出現誤刪數據,最好就是找那些獨一無二的條件比如主鍵。
一般作用於:刪除信息
3.更新

update  users set name = '李四',age=18 where id=15

上面這條語句譯爲:將id爲15的那條記錄中的name屬性改爲李四,age屬性改爲18。
重點:語法格式,修改多個字段要用“,”號隔開 。
一般作用於:更新信息

4.增加

insert into users(name,age,sex) values('張三','18','男')

上面這條語句譯爲:爲users表新增一條記錄,這條記錄的name屬性爲‘張三’,age屬性爲‘18’,sex屬性爲‘男’。
重點:語法格式 ,表名後面的字段名要和values後面的屬性值一 一對應。
一般作用於:註冊用戶

第三步.理解代碼

第一條代碼

String sql = "select * from users where id = ? and user = ? "

sql語句沒啥可說的,看完第二步應該都能看懂這條代碼是什麼意思,譯爲:聲明一個String類型的變量,變量名爲sql,並將sql語句作爲字符串賦值給sql

第二條代碼

 Connection conn = DBUtil.getConn();

這條代碼,就是第一步DBUtil中寫了三行代碼獲取了連接數據庫的連接,將這個連接給了conn,這時候conn就是可以連接數據庫的鏈接了
第三條代碼

    PreparedStatement ps = conn.prepareStatement(sql);

這條代碼,通過conn(數據庫連接),將sql(sql語句)提交到數據庫進行預編譯,但是數據庫並沒有執行sql語句,只是進行了預編譯,他可以檢測出sql語句是否有錯誤,sql語句沒有錯誤就會獲取一個prepareStatement對象然後又將prepareStatement給了ps,如果有錯誤就直接異常報錯了。
第四條代碼

 ps.setInt(1, id);
 ps.setString(2, user);

可以看第一條代碼,爲什麼SQL語句中id=?,而這條代碼就是將‘?’號替換掉,替換成我們想要的數據,就比如說我們想要的sql語句是select * from users where id = 1 and user = '張三'怎樣才能把"select * from users where id = ? and user = ? "改爲我們想要的語句呢?很明顯將第一個‘?’號替換爲 1 將第二個‘?’號替換爲 張三 而第四條代碼就是做的此類操作,這是兩條代碼爲什麼說是一條呢?其實這兩條代碼的作用是一樣的,都是替換的作用,只不過是你想要將什麼樣的數據替換給‘?’號,肯定要有區分啊,所以如果你想用int類型替換‘?’號就用setInt(),想要用String類型替換‘?’號就用setString(),無論是setInt()還是setString()都有兩個參數,參數1,是‘?’號所在sql中的位置,比如 ps.setInt(1, id)譯爲:將第一個‘?’號換爲id。
第五條代碼

ResultSet rs =ps.executeQuery();

這條代碼是讓sql語句在數據庫中運行,並將返回的結果集賦值給rs,這條代碼只有在查詢的時候用,因爲只有查詢的時候纔有結果集,也就是說sql語句只要是select開頭的就用這條代碼,之後就會獲取一個結果集rs,也就是說rs中存儲了本次查詢的所有數據,最後對rs進行遍歷取值。
第六條代碼

int flag = ps.executeUpdate()

這條代碼是讓sql語句在數據庫中運行,並返回一個int值,返回的int值是什麼意思呢?返回值是你所使用的sql語句對錶中的數據,做了幾次操作,比如新增一條信息就會返回1,更新三條信息就會返回三,這條語句是在對數據庫中的數據進行 刪除 更新 新增的時候用的 他會返回你刪除 更新 新增的次數,

如果你認真的看完了此條博客點這裏嘗試理解其中的代碼,如有疑問歡迎留言

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章