JDBC第一篇【介紹JDBC、使用JDBC連線資料庫、簡單的工具類】
JDBC全稱為:Java Data Base Connectivity,它是可以執行SQL語句的Java API
- 市面上有非常多的資料庫,本來我們是需要根據不同的資料庫學習不同的API,sun公司為了簡化這個操作,定義了JDBC API【介面】
- sun公司只是提供了JDBC API【介面】,資料庫廠商負責實現。
- 對於我們來說,運算元據庫都是在JDBC API【介面】上,使用不同的資料庫,只要用資料庫廠商提供的資料庫驅動程式即可
- 這大大簡化了我們的學習成本
步驟:
- 匯入MySQL或者Oracle驅動包
- 裝載資料庫驅動程式
- 獲取到與資料庫連線
- 獲取可以執行SQL語句的物件
- 執行SQL語句
- 關閉連線
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
/*
* 載入驅動有兩種方式
*
* 1:會導致驅動會註冊兩次,過度依賴於mysql的api,脫離的mysql的開發包,程式則無法編譯
* 2:驅動只會載入一次,不需要依賴具體的驅動,靈活性高
*
* 我們一般都是使用第二種方式
* */
//1.
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//2.
Class.forName("com.mysql.jdbc.Driver");
//獲取與資料庫連線的物件-Connetcion
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/zhongfucheng", "root", "root");
//獲取執行sql語句的statement物件
statement = connection.createStatement();
//執行sql語句,拿到結果集
resultSet = statement.executeQuery("SELECT * FROM users");
//遍歷結果集,得到資料
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
System.out.println(resultSet.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
/*
* 關閉資源,後呼叫的先關閉
*
* 關閉之前,要判斷物件是否存在
* */
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上面我們已經簡單使用JDBC去查詢資料庫的資料了,接下來我們去了解一下上面程式碼用到的物件
客戶端與資料庫所有的互動都是透過Connection來完成的。
常用的方法:
//建立向資料庫傳送sql的statement物件。
createcreateStatement()
//建立向資料庫傳送預編譯sql的PrepareSatement物件。
prepareStatement(sql)
//建立執行儲存過程的callableStatement物件
prepareCall(sql)
//設定事務自動提交
setAutoCommit(boolean autoCommit)
//提交事務
commit()
//回滾事務
rollback()
Statement物件用於向資料庫傳送Sql語句,對資料庫的增刪改查都可以透過此物件傳送sql語句完成。
Statement物件的常用方法:
//查詢
executeQuery(String sql)
//增刪改
executeUpdate(String sql)
//任意sql語句都可以,但是目標不明確,很少用
execute(String sql)
//把多條的sql語句放進同一個批處理中
addBatch(String sql)
//向資料庫傳送一批sql語句執行
executeBatch()
ResultSet物件代表Sql語句的執行結果,當Statement物件執行executeQuery()時,會返回一個ResultSet物件
ResultSet物件維護了一個資料行的遊標【簡單理解成指標】,呼叫ResultSet.next()方法,可以讓遊標指向具體的資料行,進行獲取該行的資料
常用方法:
//獲取任意型別的資料
getObject(String columnName)
//獲取指定型別的資料【各種型別,檢視API】
getString(String columnName)
//對結果集進行滾動檢視的方法
next()
Previous()
absolute(int row)
beforeFirst()
afterLast()
透過上面的理解,我們已經能夠使用JDBC對資料庫的資料進行增刪改查了,我們發現,無論增刪改查都需要連線資料庫,關閉資源,所以我們把連線資料庫,釋放資源的操作抽取到一個工具類
/*
* 連線資料庫的driver,url,username,password透過配置檔案來配置,可以增加靈活性
* 當我們需要切換資料庫的時候,只需要在配置檔案中改以上的資訊即可
*
* */
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
static {
try {
//獲取配置檔案的讀入流
InputStream inputStream = UtilsDemo.class.getClassLoader().getResourceAsStream("db.properties");
Properties properties = new Properties();
properties.load(inputStream);
//獲取配置檔案的資訊
driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
//載入驅動類
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,username,password);
}
public static void release(Connection connection, Statement statement, ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2325/viewspace-2799804/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JDBC連線資料庫JDBC資料庫
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- JDBC連結資料庫JDBC資料庫
- 使用 SSL 加密的 JDBC 連線 SAP HANA 資料庫加密JDBC資料庫
- JDBC連線批量處理資料入庫JDBC
- 淺談JDBC和資料庫連線池JDBC資料庫
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- jdbc Util 工具類JDBC
- 使用ABAP(ADBC)和Java(JDBC)連線SAP HANA資料庫JavaJDBC資料庫
- JDBC連線mysqlJDBCMySql
- JDBC連線MySQL資料庫的方法和例項JDBCMySql資料庫
- 資料庫連線分析(1)-從JDBC到MyBatis資料庫JDBCMyBatis
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- JDBC的基礎介紹JDBC
- Spring Data JDBC介紹SpringJDBC
- JDBC 詳細介紹JDBC
- spring 簡單的使用 Hikari連線池 和 jdbc連線mysql 的一個簡單例子SpringJDBCMySql單例
- [譯] RxJava JDBC 簡介RxJavaJDBC
- Java的JDBC通過SSH Tunnel連線MySQL資料庫JavaJDBCMySql資料庫
- JDBC連線資料庫實現增刪改查JDBC資料庫
- Tomcat 的 JDBC 連線池TomcatJDBC
- JDBC 連線詳解JDBC
- Java JDBC連線MYsqlJavaJDBCMySql
- JDBC入門與簡單使用JDBC
- [轉載] 1.1Java使用JDBC原生方式連線MySql資料庫JavaJDBCMySql資料庫
- JDBC資料庫訪問JDBC資料庫
- mysql的JDBC架包下載及簡單測試連線MySqlJDBC
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫
- MySQL下載安裝配置及JDBC連線資料庫MySqlJDBC資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- Java學習:JDBC簡介JavaJDBC
- 關於Spring的JDBC連線mysql(與傳統jdbc比較)SpringJDBCMySql
- java實現簡單的JDBCJavaJDBC
- jdbc就是這麼簡單JDBC
- mysql的jdbc連線java實現MySqlJDBCJava
- 【JDBC】使用OracleDataSource建立連線池用於連線OracleJDBCOracle
- JDBC連線資料庫實現增刪改查前端互動JDBC資料庫前端