JDBC開發

程序詳解—DriverManager

Jdbc程序中的DriverManager用於加載驅動,並創建與數據庫的鏈接,這個API的常用方法:
DriverManager.registerDriver(new Driver()) •DriverManager.getConnection(url, user, password),
l注意:在實際開發中並不推薦採用registerDriver方法註冊驅動。原因有二:
一、查看Driver的源代碼可以看到,如果採用此種方式,會導致驅動程序註冊兩次,也就是在內存中會有兩個Driver對象。
二、程序依賴mysql的api,脫離mysql的jar包,程序將無法編譯,將來程序切換底層數據庫將會非常麻煩。
推薦方式:Class.forName(“com.mysql.jdbc.Driver”);
採用此種方式不會導致驅動對象在內存中重複出現,並且採用此種方式,程序僅僅只需要一個字符串,不需要依賴具體的驅動,使程序的靈活性更高。
同樣,在開發中也不建議採用具體的驅動類型指向getConnection方法返回的connection對象。
 
數據庫URL
 
URL用於標識數據庫的位置,程序員通過URL地址告訴JDBC程序連接哪個數據庫,URL的寫法爲:
   jdbc:mysql:[]//localhost:3306/test ?參數名:參數值
 
 
常用數據庫URL地址的寫法:
 
Oracle寫法:jdbc:oracle:thin:@localhost:1521:sid
SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
MySql—jdbc:mysql://localhost:3306/sid
Mysql的url地址的簡寫形式: jdbc:mysql:///sid
常用屬性:useUnicode=true&characterEncoding=UTF-8
 
 
程序詳解—Connection
 
Jdbc程序中的Connection,它用於代表數據庫的鏈接,Collection是數據庫編程中最重要的一個對象,客戶端與數據庫所有交互都是通過connection對象完成的,這個對象的常用方法:
createStatement():創建向數據庫發送sql的statement對象。
prepareStatement(sql) :創建向數據庫發送預編譯sql的PrepareSatement對象。
prepareCall(sql):創建執行存儲過程的callableStatement對象。
setAutoCommit(boolean autoCommit):設置事務是否自動提交。
commit() :在鏈接上提交事務。
rollback() :在此鏈接上回滾事務。

 

 

常用數據類型轉換表
 
SQL類型
BIT(1) bit(10)
TINYINT
SMALLINT
Int
BIGINT
CHAR,VARCHAR,LONGVARCHAR
Text(clob)  Blob
DATE
TIME
TIMESTAMP
Jdbc對應方法
返回類型
getBoolean getBytes()
Boolean byte[]
getByte()
Byte
getShort()
Short
getInt()
Int
getLong()
Long
getString()
String
getClob getBlob()
Clob  Blob
getDate()
java.sql.Date
getTime()
java.sql.Time
getTimestamp()
java.sql.Timestamp
 
 
 
 
使用JDBC對數據庫進行CRUD
 
Jdbc中的statement對象用於向數據庫發送SQL語句,想完成對數據庫的增刪改查,只需要通過這個對象向數據庫發送增刪改查語句即可。
Statement對象的executeUpdate方法,用於向數據庫發送增、刪、改的sql語句,executeUpdate執行完後,將會返回一個整數(即增刪改語句導致了數據庫幾行數據發生了變化)。
Statement.executeQuery方法用於向數據庫發送查詢語句,executeQuery方法返回代表查詢結果的ResultSet對象。

 

CRUD操作-create
 
使用executeUpdate(String sql)方法完成數據添加操作,示例操作:
	Statement st = conn.createStatement();

	String sql = "insert into user(….) values(…..) "; 

	int num = st.executeUpdate(sql);

	if(num>0){
		System.out.println("插入成功!!!");
	}

CRUD操作-updata
 
使用executeUpdate(String sql)方法完成數據修改操作,示例操作:
Statement st = conn.createStatement();

	String sql = “update user set name=‘’ where name=‘’"; 

	int num = st.executeUpdate(sql);

	if(num>0){
		System.out.println(“修改成功!!!");
	}

CRUD操作-delete
 
使用executeUpdate(String sql)方法完成數據刪除操作,示例操作:
 
Statement st = conn.createStatement();

	String sql = “delete from user where id=1; 

	int num = st.executeUpdate(sql);

	if(num>0){
		System.out.println(“刪除成功!!!");
	}

CRUD操作-read
 
使用executeQuery(String sql)方法完成數據查詢操作,示例操作:
Statement st = conn.createStatement();

	String sql = “select * from user where id=1; 

	ResultSet rs = st.executeUpdate(sql);

	while(rs.next()){
		//根據獲取列的數據類型,分別調用rs的相應方法
		//映射到java對象中
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章