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

歡迎訪問 生活随笔!

生活随笔

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

数据库

jdbc mysql user_tab_comments_MySQL学习(五)——使用JDBC完成用户表CRUD的操作

發布時間:2025/3/11 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jdbc mysql user_tab_comments_MySQL学习(五)——使用JDBC完成用户表CRUD的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過案例我們發現“獲得連接”和“釋放資源”兩次代碼將在之后的增刪改查所有功能中都存在,開發中遇到此種情況,將采用工具類的方法進行抽取,從而達到代碼的重復利用。

1、使用properties配置文件

開發中獲得連接的4個參數(驅動、URL、用戶名、密碼)通常都存在配置文件中,方便后期維護,程序如果需要更換數據庫,只需要修改配置文件即可。

文件要求如下:

1)文件位置:任意,建議在src下

2)文件名稱:任意,擴展名為properties

3)文件內容:一行一組數據,格式是“key=value”.

a)key命名自定義,如果是多個單詞,習慣使用點分隔。例如:jdbc.driver

b)value值不支持中文,如果需要使用非英文字符,將進行Unicode轉換

2、創建配置文件

右擊src->new->file命名...

1 driver=com.mysql.jdbc.Driver2 url=jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf8

3 username=root4 password=12345

3.1、加載配置文件:ResourceBundle對象(JDBCUtils_V2.java文件)

1 packagecn.itheima.jdbc;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.PreparedStatement;6 importjava.sql.ResultSet;7 importjava.sql.SQLException;8 importjava.util.ResourceBundle;9

10 /**

11 * 提供獲取連接和釋放資源的方法12 *@authorAdministrator13 *14 */

15 public classJDBCUtils_V2 {16 private static String driver; //驅動

17 private static String url; //路徑

18 private static String username; //用戶名

19 private static String password; //密碼

20

21 /*

22 * 靜態代碼塊加載配置文件信息23 */

24 static{25 //1.使用JDK提供的工具類加載properties文件,getBundle()方法只需要填寫文件,不加后綴!!!

26 ResourceBundle bundle=ResourceBundle.getBundle("db");27 //2.通過key獲得需要的值

28 driver=bundle.getString("driver");29 url=bundle.getString("url");30 username=bundle.getString("username");31 password=bundle.getString("password");32 }33

34 /*

35 * 獲取連接方法36 */

37 public staticConnection getConnection(){38 Connection conn=null;39 try{40 //1.注冊驅動

41 Class.forName(driver);42 //2.獲得連接

43 conn=DriverManager.getConnection(url,username,password);44 } catch(Exception e) {45 e.printStackTrace();46 }47 returnconn;48 }49 /*

50 * 釋放資源方法51 */

52 public static voidrelease(Connection conn,PreparedStatement pstmt,ResultSet rs){53 if(rs!=null){54 try{55 rs.close();56 } catch(SQLException e) {57 e.printStackTrace();58 }59 }60 if(pstmt!=null){61 try{62 pstmt.close();63 } catch(SQLException e) {64 e.printStackTrace();65 }66 }67 if(conn!=null){68 try{69 conn.close();70 } catch(SQLException e) {71 e.printStackTrace();72 }73 }74 }75 }

3.2、加載配置文件:Properties對象((JDBCUtils_V3.java文件)可選)

1 packagecn.itheima.jdbc;2

3 importjava.io.IOException;4 importjava.io.InputStream;5 importjava.io.InputStreamReader;6 importjava.sql.Connection;7 importjava.sql.DriverManager;8 importjava.sql.PreparedStatement;9 importjava.sql.ResultSet;10 importjava.sql.SQLException;11 importjava.util.Properties;12 importjava.util.ResourceBundle;13

14 /**

15 * 提供獲取連接和釋放資源的方法16 *@authorAdministrator17 *18 */

19 public classJDBCUtils_V3 {20 private static String driver; //驅動

21 private static String url; //路徑

22 private static String username; //用戶名

23 private static String password; //密碼

24

25 /*

26 * 靜態代碼塊加載配置文件信息27 */

28 static{29 try{30 //1.通過當前類獲得類加載器

31 ClassLoader classLoader=JDBCUtils_V3.class.getClassLoader();32 //2.通過類加載器的方法獲得一個輸入流

33 InputStream is=classLoader.getResourceAsStream("db.properties");34 //3.創建一個properties對象

35 Properties props=newProperties();36 //4.加載輸入流

37 props.load(is);38 //5.獲取相關參數的值

39 driver=props.getProperty("driver");40 url=props.getProperty("url");41 username=props.getProperty("username");42 password=props.getProperty("password");43 } catch(IOException e) {44 e.printStackTrace();45 }46 }47 /*

48 * 獲取連接方法49 */

50 public staticConnection getConnection(){51 Connection conn=null;52 try{53 //1.注冊驅動

54 Class.forName(driver);55 //2.獲得連接

56 conn=DriverManager.getConnection(url,username,password);57 } catch(Exception e) {58 e.printStackTrace();59 }60 returnconn;61 }62 /*

63 * 釋放資源64 */

65 public static voidrelease(Connection conn,PreparedStatement pstmt,ResultSet rs){66 if(rs!=null){67 try{68 rs.close();69 } catch(SQLException e) {70 e.printStackTrace();71 }72 }73 if(pstmt!=null){74 try{75 pstmt.close();76 } catch(SQLException e) {77 e.printStackTrace();78 }79 }80 if(conn!=null){81 try{82 conn.close();83 } catch(SQLException e) {84 e.printStackTrace();85 }86 }87 }88 }

4、實現CRUD操作(查詢和添加使用的JDBCUtils_V2.java、刪除和修改使用的是JDBCUtils_V3.java文件)

1 packagecn.itheima.jdbc.test;2

3 importjava.sql.Connection;4 importjava.sql.PreparedStatement;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7

8 importorg.junit.Test;9

10 importcn.itheima.jdbc.JDBCUtils_V2;11 importcn.itheima.jdbc.JDBCUtils_V3;12

13 /*

14 * 測試工具類15 */

16 public classTestUtils {17 /*

18 * 根據id查詢用戶信息19 */

20 @Test21 public voidtestFindUserById() {22 Connection conn = null;23 PreparedStatement pstmt = null;24 ResultSet rs = null;25 try{26 //1.獲取連接

27 conn =JDBCUtils_V2.getConnection();28 //2.編寫sql語句

29 String sql = "select * from tbl_user where uid=?";30 //3.獲取執行sql語句對象

31 pstmt =conn.prepareStatement(sql);32 //4.設置參數

33 pstmt.setInt(1, 2);34 //5.執行查詢操作

35 rs =pstmt.executeQuery();36 //6.處理結果集

37 while(rs.next()) {38 System.out.println(rs.getString(2) + "----" + rs.getString("upassword"));39 }40 //釋放資源放在此處不行滴!

41 } catch(SQLException e) {42 e.printStackTrace();43 } finally{44 //7.釋放資源

45 JDBCUtils_V2.release(conn, pstmt, rs);46 }47 }48

49 /*

50 * 添加用戶信息方法51 */

52 @Test53 public voidtestAdd(){54 Connection conn=null;55 PreparedStatement pstmt=null;56 try{57 //1.獲取連接

58 conn=JDBCUtils_V2.getConnection();59 //2.編寫sql語句

60 String sql="insert into tbl_user values(null,?,?)";61 //3.獲取執行sql語句對象

62 pstmt=conn.prepareStatement(sql);63 //4.設置參數

64 pstmt.setString(1, "hehe");65 pstmt.setString(2,"789");66 //5.執行插入操作

67 int row=pstmt.executeUpdate();68 if(row>0){69 System.out.print("添加成功!");70 }else{71 System.out.print("添加失敗 ");72 }73 }catch(Exception e){74 e.printStackTrace();75 }finally{76 //6.釋放資源

77 JDBCUtils_V2.release(conn, pstmt, null);78 }79 }80

81 /*

82 * 根據id刪除用戶信息83 */

84 @Test85 public voidtestDeleteById(){86 Connection conn = null;87 PreparedStatement pstmt = null;88 ResultSet rs = null;89 try{90 //1.獲取連接

91 conn =JDBCUtils_V3.getConnection();92 //2.編寫sql語句

93 String sql = "delete from tbl_user where uid=?";94 //3.獲取執行sql語句對象

95 pstmt =conn.prepareStatement(sql);96 //4.設置參數

97 pstmt.setInt(1, 4);98 //5.執行刪除操作

99 int row=pstmt.executeUpdate();100 if(row>0){101 System.out.print("刪除成功!");102 }else{103 System.out.print("刪除失敗 ");104 }105 }catch(Exception e){106 e.printStackTrace();107 }finally{108 //6.釋放資源

109 JDBCUtils_V3.release(conn, pstmt, null);110 }111 }112

113 /*

114 * 根據id更新用戶信息115 */

116 @Test117 public voidtestUpdateById(){118 Connection conn = null;119 PreparedStatement pstmt = null;120 ResultSet rs = null;121 try{122 //1.獲取連接

123 conn =JDBCUtils_V3.getConnection();124 //2.編寫sql語句

125 String sql = "update tbl_user set upassword=? where uid=?";126 //3.獲取執行sql語句對象

127 pstmt =conn.prepareStatement(sql);128 //4.設置參數

129 pstmt.setString(1, "233");130 pstmt.setInt(2, 5);131 //5.執行更新操作

132 int row=pstmt.executeUpdate();133 if(row>0){134 System.out.print("更新成功!");135 }else{136 System.out.print("更新失敗 ");137 }138 }catch(Exception e){139 e.printStackTrace();140 }finally{141 //6.釋放資源

142 JDBCUtils_V3.release(conn, pstmt, null);143 }144 }145 }

查詢uid=2的效果如下:

添加成功的效果如下:

刪除uid=4的效果如下:

更新uid=5的密碼為233的效果如下:

總結

以上是生活随笔為你收集整理的jdbc mysql user_tab_comments_MySQL学习(五)——使用JDBC完成用户表CRUD的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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