關於JDBC的一些使用參考

關於JDBC的一些使用參考

備份和還原java

備份: mysqldump -u 用戶名 -p 密碼 數據庫 > 文件名
還原:
登陸使用數據庫
use 數據庫
source 文件名

設置事務回滾點mysql

設置事務回滾點: savepoint 名字
回到回滾點: rollback to 名字

JDBC

JDBC的本質就是定義了一套操做全部關係型數據庫(MySQL、Oracle等)的規則/接口。sql

亂碼的處理

若是數據庫出現亂碼,能夠指定參數: ?characterEncoding=utf8,表示讓數據庫以 UTF-8 編碼來處理數據。
jdbc:mysql://localhost:3306/數據庫?characterEncoding=utf8

釋放資源

1) 須要釋放的對象: ResultSet 結果集, Statement 語句, Connection 鏈接
2) 釋放原則:先開的後關,後開的先關。 ResultSet  Statement  Connection
3) 放在哪一個代碼塊中: finally 塊

ResultSet接口中的方法

方法 描述
boolean next() 1) 遊標向下移動 1 行
2) 返回 boolean 類型,若是還有下一條記錄,返回 true,不然返回 false
數據類型 getXxx() 1) 經過字段名,參數是 String 類型。返回不一樣的類型
2) 經過列號,參數是整數,從 1 開始。返回不一樣的類型

經常使用數據類型轉換表

SQL 類型 Jdbc 對應方法 返回類型
BIT(1) bit(n) getBoolean() boolean
TINYINT getByte() byte
SMALLINT getShort() short
INT getInt() int
BIGINT getLong() long
CHAR,VARCHAR getString() String
Text(Clob) Blob getClob getBlob() Clob Blob
DATE getDate() java.sql.Date 只表明日期
TIME getTime() java.sql.Time 只表示時間
TIMESTAMP getTimestamp() java.sql.Timestamp 同時有日期和時間

 java.sql.Date、 Time、 Timestamp(時間戳),三個共同父類是: java.util.Date數據庫

PrepareStatement的執行原理

Statement對象每執行一條sql語句,都會先將sql語句發送給數據庫,數據庫先編譯sql,再執行。若是有1萬條相似的sql語句,數據庫須要編譯1萬次,執行1萬次,效率低。
PrepareStatement會先將sql語句發送給數據庫預編譯。PrepareStatement會引用預編譯後的結果,能夠屢次傳入不一樣的參數給PrepareStatement對象,並執行。若是有1萬條相似的sql語句,數據庫只須要編譯1次,傳入1萬次不一樣的參數並執行,減小了sql語句的編譯次數,提升了執行效率。還能夠有效防止sql注入問題,安全性更高。

JDBC事務處理

API安全

Connection 接口中與事務有關的方法 說明
void setAutoCommit(boolean autoCommit) 參數是 true 或 false
若是設置爲 false,表示關閉自動提交,至關於開啓事務
void commit() 提交事務
void rollback() 回滾事務
相關文章
相關標籤/搜索