一、連接MySQL數據庫
連接MySQL數據庫的方式有多種,其中使用JDBC連接是一種常用的方式。在JDBC連接中,我們需要使用mysql-connector-java包,並調用相關的類和方法實現連接操作。
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/數據庫名", "用戶名", "密碼");
上述代碼中,首先使用Class.forName()方法加載MySQL的JDBC驅動程序,然後通過DriverManager.getConnection()方法連接數據庫。其中,需要傳入一個包含用戶名和密碼的Properties對象,以及連接的URL(jdbc:mysql://localhost:3306/數據庫名)。
二、執行SQL語句
在連接MySQL數據庫之後,我們可以通過Statement或PreparedStatement對象執行SQL語句。其中,Statement對象用於執行靜態SQL語句,而PreparedStatement對象用於執行動態SQL語句。
執行靜態SQL語句的代碼如下:
Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from 表名"); while (rs.next()) { // 處理查詢結果 } stmt.close();
執行動態SQL語句的代碼如下:
String sql = "insert into 表名(列1, 列2) values(?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "值1"); pstmt.setString(2, "值2"); pstmt.executeUpdate(); pstmt.close();
上述代碼中,使用?佔位符代替具體的變量值,然後通過setXXX()方法設置具體的值,最後調用executeUpdate()方法執行更新操作。
三、事務管理
在數據庫操作中,事務管理是非常重要的一部分。通過事務管理,我們可以保證一組相關的SQL語句能夠作為一個整體進行管理。在JDBC中,我們可以通過Connection對象的setAutoCommit()方法和commit()方法、rollback()方法實現事務管理。
開啟事務的代碼如下:
conn.setAutoCommit(false);
執行一組SQL語句,並提交事務的代碼如下:
Statement stmt = conn.createStatement(); stmt.executeUpdate("update 表1 set 列1 = 值1"); stmt.executeUpdate("update 表2 set 列2 = 值2"); conn.commit(); stmt.close();
執行一組SQL語句,並回滾事務的代碼如下:
Statement stmt = conn.createStatement(); stmt.executeUpdate("update 表1 set 列1 = 值1"); stmt.executeUpdate("update 表2 set 列2 = 值2"); conn.rollback(); stmt.close();
四、連接池
在高並發的情況下,頻繁創建和關閉數據庫連接會嚴重影響系統性能。因此,使用連接池可以有效地避免這一問題。在JDBC中,我們可以使用c3p0連接池。
使用c3p0連接池的代碼如下:
ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass("com.mysql.jdbc.Driver"); cpds.setJdbcUrl("jdbc:mysql://localhost:3306/數據庫名"); cpds.setUser("用戶名"); cpds.setPassword("密碼");
在使用連接時,我們可以通過下面的代碼從連接池中獲取連接:
Connection conn = cpds.getConnection();
五、總結
jdbc:mysql://localhost:3306是連接MySQL數據庫的重要方式之一,在JDBC中,我們可以通過使用mysql-connector-java包和相關類和方法實現連接、執行SQL語句、事務管理和連接池等功能。
原創文章,作者:KLFZU,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371573.html