1、JDBC概述
1.什么是JDBC
JDBC 是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。java 提供了jdbc的接口規范,對應數據庫廠商依照規范進行驅動類庫開發,提供給開發者。應用程序與數據以jdbc橋接的方式進行交互,任何基于JDBC 的 ORM 框架都是對JDBC 操作的封裝。
2.數據庫驅動
我們安裝好數據庫之后,我們的應用程序也是不能直接使用數據庫的,必須要通過相應的數據庫驅動程序,通過驅動程序去和數據庫打交道。其實也就是數據庫廠商的JDBC接口實現,即對Connection等接口的實現類的jar文件。
3、常用接口
1.Driver接口
Driver接口由數據庫廠家提供,作為java開發人員,只需要使用Driver接口就可以了。在編程中要連接數據庫,必須先裝載特定廠商的數據庫驅動程序,不同的數據庫有不同的裝載方法。如:
- 裝載MySql驅動:Class.forName(“com.mysql.jdbc.Driver”);
- 裝載Oracle驅動:Class.forName(“oracle.jdbc.driver.OracleDriver”);
2.Connection接口
Connection與特定數據庫的連接(會話),在連接上下文中執行sql語句并返回結果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定義的數據庫Connection連接上。
DriverManager.getConnection(“jdbc:mysql://host:port/database”,
“user”, “password”);
DriverManager.getConnection(“jdbc:oracle:thin:@host:port:database”,
“user”, “password”);
DriverManager.getConnection(“jdbc:microsoft:sqlserver://host:port;
DatabaseName=database”, “user”, “password”);
常用方法:
- createStatement():創建向數據庫發送sql的statement對象。
- prepareStatement(sql) :創建向數據庫發送預編譯sql的PrepareSatement對象。
- prepareCall(sql):創建執行存儲過程的callableStatement對象。
- setAutoCommit(boolean autoCommit):設置事務是否自動提交。
- commit() :在鏈接上提交事務。
- rollback() :在此鏈接上回滾事務。
3.Statement接口
用于執行靜態SQL語句并返回它所生成結果的對象。
三種Statement類:
- Statement:由createStatement創建,用于發送簡單的SQL語句(不帶參數)。
- PreparedStatement :繼承自Statement接口,由preparedStatement創建,用于發送含有一個或多個參數的SQL語句。PreparedStatement對象比Statement對象的效率更高,并且可以防止SQL注入,所以我們一般都使用PreparedStatement。
- CallableStatement:繼承自PreparedStatement接口,由方法prepareCall創建,用于調用存儲過程。
常用Statement方法:
- execute(String sql):運行語句,返回是否有結果集
- executeQuery(String sql):運行select語句,返回ResultSet結果集。
- executeUpdate(String sql):運行insert/update/delete操作,返回更新的行數。
- addBatch(String sql) :把多條sql語句放到一個批處理中。
- executeBatch():向數據庫發送一批sql語句執行。
4.ResultSet接口
ResultSet提供檢索不同類型字段的方法,常用的有:
- getString(int index)、getString(String columnName):獲得在數據庫里是varchar、char等類型的數據對象。
- getFloat(int index)、getFloat(String columnName):獲得在數據庫里是Float類型的數據對象。
- getDate(int index)、getDate(String columnName):獲得在數據庫里是Date類型的數據。
- getBoolean(int index)、getBoolean(String columnName):獲得在數據庫里是Boolean類型的數據。
- getObject(int index)、getObject(String columnName):獲取在數據庫里任意類型的數據。
ResultSet還提供了對結果集進行滾動的方法:
- next():移動到下一行
- Previous():移動到前一行
- absolute(int row):移動到指定行
- beforeFirst():移動resultSet的最前面。
- afterLast() :移動到resultSet的最后面。
使用后依次關閉對象及連接:ResultSet → Statement → Connection
總結
- 上一篇: 3、使用Statement接口实现增,删
- 下一篇: 2、JDBC连接数据库