【JDBC】JDBC入門
阿新 • • 發佈:2020-12-19
技術標籤:技術
JDBC的入門
- 搭建開發環境
- 編寫程式,在程式中載入資料庫驅動
- 建立連線
- 建立用於向資料庫傳送SQL的Statement物件
- 從代表結果集的ResultSet中取出資料
- 斷開與資料庫的連線,並釋放相關資源
新建一個測試用的資料庫jdbctest
create database if not exists jdbctest default character set 'utf8'; use jdbctest; create table if not exists user( uid int unsigned auto_increment key, username varchar(20) not null, password varchar(20) not null, name varchar(20) not null )engine=innodb charset=utf8; insert user values (null, 'aaa', '111', '張三'), (null, 'bbb', '222', '李四'), (null, 'ccc', '333', '王五');
下載資料庫驅動並匯入到jdbc專案
下載地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
編寫jdbc測試程式(mysql版本為8.0.17)
package demo1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; public class JDBCDemo1 { @Test /** * JDBC入門程式 */ public void demo1() { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { //1.載入驅動 Class.forName("com.mysql.cj.jdbc.Driver"); //2.獲得連線 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest" + "?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8", "root", "1234"); //3建立執行SQL語句的物件,並且執行SQL //3.1建立執行SQL語句的物件 String sql = "select * from user"; stmt = conn.createStatement(); //3.2執行SQL rs = stmt.executeQuery(sql); while(rs.next()) { int uid = rs.getInt("uid"); String username = rs.getString("username"); String password = rs.getString("password"); String name = rs.getString("name"); System.out.println(uid + "-" + username + "-" + password + "-" + name); } } catch (SQLException | ClassNotFoundException e) { e.printStackTrace(); } finally { //4.釋放資源 if(rs != null) { try { rs.close(); } catch (SQLException sqlEx) { // ignore } rs = null; } if(stmt != null) { try { stmt.close(); } catch (SQLException sqlEx) { // ignore } stmt = null; } if(conn != null) { try { conn.close(); } catch (SQLException sqlEx) { // ignore } conn = null; //垃圾回收機制更早回收物件。 } } } }
JDBC的API
DriverManager
Connection
Statement
ResultSet
JDBC的資源釋放
- jdbc程式執行完後,切記要釋放程式在執行過程中,建立的那些與資料庫進行互動的物件,這些物件通常是ResultSet,Statement和Connection物件。
- 特別是Connection物件,它是非常稀有的資源,用完後必須馬上釋放,如果Connection不能及時、正確的關閉,極易導致系統宕機。Connection的使用原則是儘量晚建立,儘量早的釋放。