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

歡迎訪問 生活随笔!

生活随笔

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

数据库

java mysql数据库编程_java JDBC数据库(mysql)编程

發布時間:2023/12/15 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java mysql数据库编程_java JDBC数据库(mysql)编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是JDBC

? JDBC(Java Data Base Connectivity,Java數據庫連接)

? 是一種用于執行SQL語句的Java API,為多種關系數據庫提供統一訪問

? 它由一組用Java語言編寫的類和接口組成

JDBC訪問數據庫步驟

? 1:加載一個Driver驅動

要通過JDBC與數據庫連接,先要加載JDBC驅動Driver,這個要想導入一個mysql-connector-java.jar包;各版本

不同的JDK版本可能對應不同的jar包,如果不行可以換一個jar包試一下;具體不同的編輯器導入jar包的方式可能不一樣,所以導入包的方式不懂的話可以到網上搜一下;

java加載mysql數據庫Driver驅動的形式:

5.XXX之前版本: Class.forName("com.mysql.JDBC.Driver");

6.XXX版本之后的就是? ??Class.forName("com.mysql.cj.JDBC.Driver")

? 2:創建數據庫連接(Connection)

與數據庫建立連接的方法是調用DriverManager.getConnection(String url, String user, String password )方法

? Connection conn=null;

? String url="jdbc:mysql://localhost:3306/login";  // 格式是 "jdbc:mysql://IP地址:端口號/數據庫名稱"

? String user=“root";  //用戶名

? String password=“7820170";  //密碼

? conn = DriverManager.getConnection(url, user, password);  //建立連接

? 3 :創建SQL命令發送器Statement對象

有三種 Statement對象:

? Statement:用于執行不帶參數的簡單SQL語句;(這個對象要直接傳一個字符串來操作數據庫,雖然可以拼接字符串,但不方便,還有sql注入的危險;)

String sql="select * from user where id=1";//創建sql語句

Statement stmt=conn.createStatement();//創建Statement對象

stmt.execute(sql);//發送sql語句,對于發送還有其他的方法,有不同的功能,后面再講

? PreparedStatement(從 Statement 繼承):用于執行帶或不帶參數的預編譯SQL語句;(這個對象可以,通過傳參數的方式來完成sql語句的編寫,比較方便和安全,但這個SQL語句要預編譯,對于操作大量SQL語句不合適,如果需要操作大量SQL語句還是使用Statement比較好)

String sql="insert into students (name,age,school) values (?,?,?)";//?表示占位符

PreparedStatement ps =conn.prepareStatement(sql);//因為 PerparedStatement 中的 SQL 語句數據庫需要進行預編譯和緩存,

因此要在創建 PerparedStatement 對象時給出 SQL 語句

ps.setString(1, "hhh");//傳參數,從1開始,而不是從0開始

ps.setString(2, "18");

ps.setString(3, "廣財");

System.out.println("成功插入一條信息");

ps.execute();//提交

? CallableStatement(從PreparedStatement 繼承):用于執行數據庫存儲過程的調用。

這個暫時不清楚,就不寫了

? 4:通過Statement發送SQL命令并得到結果

ResultSetexecuteQuery(String sql); 執行SQL查詢,并返回ResultSet 對象。intexecuteUpdate(String sql); 可執行增,刪,改,返回執行受到影響的行數。booleanexecute(String sql); 可執行任何SQL語句,返回一個布爾值,表示是否返回ResultSet 。

? 5:處理結果(select語句)

返回的RsultSet如何遍歷:

ResultSet rs=ps.executeQuery();//返回的是一個迭代對象while(rs.next()) {//判斷是否還有可以迭代的對象

System.out.println(rs.getInt(1)+"---"+rs.getString(2)+"---"+rs.getInt(3));//getInt(1)返回第一列的int行的數據,如果數據類型不對會報錯當然也可以直接傳第一列的名稱,比如:getInt("id");

}

? 6:關閉數據庫資源

? 作為一種好的編程風格,應在不需要Statement對象和Connection對象時顯式地關閉它們。關閉Statement對象和Connection對象的語法形式為:

? public void close() throws SQLException

? 用戶不必關閉ResultSet。當它的 Statement 關閉、重新執行或用于從多結果序列中獲取下一個結果時,該ResultSet將被自動關閉。

? 注意:要按先ResultSet結果集,后Statement,最后Connection的順序關閉資源,因為Statement和ResultSet是需要連接是才可以使用的,所以在使用結束之后有可能其他的Statement還需要連接,所以不能先關閉Connection。

try{

rs.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}try{

ps.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}try{

conn.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

總結

以上是生活随笔為你收集整理的java mysql数据库编程_java JDBC数据库(mysql)编程的全部內容,希望文章能夠幫你解決所遇到的問題。

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