日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

JAVA数据库的操作(增、删、改、查)

發布時間:2023/12/20 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA数据库的操作(增、删、改、查) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA數據庫的操作(增、刪、改、查)

  • 一、首先與數據庫建立連接
  • 二、數據庫的增、刪、改、查
    • 1.增
      • ①首先我們編寫SQL語句
      • ②預編譯
      • ③設置占位符的值
      • ④執行
      • ⑤完整代碼
    • 2.刪
    • 3.改
    • 4.查
      • ①首先我們編寫SQL語句
      • ②創建Statement對象用于執行SQL語句
      • ③執行SQL語句
      • ④遍歷結果集
      • ⑤完整代碼
  • 三、總結
    • 1、對于Statement
    • 2、對于PreparedStatement

一、首先與數據庫建立連接

static Connection con; //聲明了一個全局變量方便使用 public static void SQLConnect() {try {Class.forName("com.mysql.jdbc.Driver"); //加載數據庫驅動String url="jdbc:mysql://localhost:3306/*****?autoReconnect=true&useSSL=false"; //*****位置填寫數據庫的名字String usename="root"; //數據庫用戶名String psw="root"; //數據庫密碼con = DriverManager.getConnection(url,usename,psw); //建立連接} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

具體步驟參考這個鏈接
https://blog.csdn.net/weixin_44652589/article/details/117999530

二、數據庫的增、刪、改、查

1.增

PreparedStatement繼承自Statement,都是接口。這里我們推薦使用PreparedStatement,來執行數據庫的增加操作,而不用Statement。
因為PreparedStatement可以使用占位符,是預編譯的,批處理比Statement效率高。

PreparedStatement 是一個特殊的Statement對象,如果我們只是來查詢或者更新數據的話,最好用PreparedStatement代替Statement,因為它有以下有點:
1.簡化Statement中的操作
2.提高執行語句的性能
3.可讀性和可維護性更好
4.安全性更好。
5.使用PreparedStatement能夠預防SQL注入攻擊,所謂SQL注入,指的是通過把SQL命令插入到Web表單提交或者輸入域名或者頁面請求的查詢字符串,最終達到欺騙服務器,達到執行惡意SQL命令的目的。注入只對SQL語句的編譯過程有破壞作用,而執行階段只是把輸入串作為數據處理,不再需要對SQL語句進行解析,因此也就避免了類似select * from user where name=‘aa’ and password=‘bb’ or 1=1的sql注入問題的發生。

①首先我們編寫SQL語句

String insertSQL = "insert into stubase(id,name,sex,dep,math,eng) values (?,?,?,?,?,?)";

②預編譯

PreparedStatement stat = con.prepareStatement(insertSQL);

③設置占位符的值

需要設置整形數據就使用setInt()方法。
需要設置字符串數據就使用setString()方法。
方法中的第一個參數是第幾個占位符,從1開始。

stat.setInt(1,100); stat.setString(2,"String"); stat.setString(3,"String"); stat.setString(4,"String"); stat.setInt(5,100); stat.setInt(6,100);

④執行

stat.executeUpdate();

⑤完整代碼

try {String insertSQL = "insert into stubase(id,name,sex,dep,math,eng) values (?,?,?,?,?,?)";PreparedStatement stat = con.prepareStatement(insertSQL);stat.setInt(1,100);stat.setString(2,"String");stat.setString(3,"String");stat.setString(4,"String");stat.setInt(5,100);stat.setInt(6,100);stat.executeUpdate();System.out.println(con);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}

2.刪

與上述同理,首先我們編寫SQL語句
然后創建Statement對象(也可以用PreparedStatement,這里演示一下Statement的使用)
最后執行。

String deleteSQL = "delete from stubase where id=18000";Statement stmt = con.createStatement();stmt.executeUpdate(deleteSQL);

3.改

這里仍然使用的是PreparedStatement,但是我在寫SQL語句時沒有使用占位符,而是使用了轉義字符,兩者都可以,我本人也認為占位符比較方便,這里只是演示轉義字符的使用。

try {String sql="update stubase set "+ "name=\'"+s.getName()+"\',sex=\'"+s.getSex()+"\',dep=\'"+s.getDep()+"\',math="+s.getMath()+",eng="+s.getEng()+" "+"where id="+s.getId();PreparedStatement stat = con.prepareStatement(sql);stat.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}

4.查

查相對比較麻煩,增、刪、改執行后的返回值位受影響的行數,而查詢操作則會返回一張數據表。要對這張數據表進行操作,來獲取值。

①首先我們編寫SQL語句

這里我們查詢全部

String sql = "select * from stubase";

②創建Statement對象用于執行SQL語句

Statement stmt = con.createStatement();

③執行SQL語句

ResultSet res = stmt.executeQuery(sql);

④遍歷結果集

res初始指向查詢到的數據表的第一行的上一行。
res.next()會使指針移動至下一行,它的返回值位布爾類型(boolean)。如果下一行有數據那么返回值位true,否則為false。

獲取整形數據就使用getInt()方法。
獲取字符串數據就使用getString()方法。
方法中的參數是查詢到的結果表的第幾列,依舊從1開始。.

可以在while循環中對獲取的數據進行操作,例如添加到ArrayList中,方便我們的使用。

while(res.next()) {int id = res.getInt(2);String name = res.getString(3);String sex = res.getString(4);String dep = res.getString(5); int math = res.getInt(6);int eng = res.getInt(7);}

⑤完整代碼

String sql = "select * from stubase";Statement stmt = con.createStatement();ResultSet result = stmt.executeQuery(sql);while(res.next()) {int id = res.getInt(2);String name = res.getString(3);String sex = res.getString(4);String dep = res.getString(5); int math = res.getInt(6);int eng = res.getInt(7);}

三、總結

我們既可以用Statement,也可以用PreparedStatement。
使用 Statement 對象。在對數據庫只執行一次性存取的時侯,用 Statement 對象進行處理。PreparedStatement對象的開銷比Statement大,對于一次性操作并不會帶來額外的好處。
PreparedStatement可以使用占位符。

1、對于Statement

1.執行查詢操作時使用executeQuery(String sql),返回值為Resultset 類型。

Resultset res = executeQuery(String sql) ;

2.執行增、刪、改操作時使用executeUpdate(String sql) ,返回值是整形,意義為受影響的行數。

int res = executeUpdate(String sql) ;

2、對于PreparedStatement

1.執行查詢操作時使用executeQuery( ),返回值為Resultset 類型。

Resultset res = executeQuery() ;

2.執行增、刪、改操作時使用executeUpdate( ) ,返回值是整形,意義為受影響的行數。

int res = executeUpdate() ;

總結

以上是生活随笔為你收集整理的JAVA数据库的操作(增、删、改、查)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。