JDBC ___ 補充:Jabc相關類介紹 1.Connection類 a.用於代表資料庫的鏈接,客戶端與資料庫所有交互都是通過connection對象完成的。 b.主要方法: createStatement():創建向資料庫發送sql的statement對象。 prepareStatement(s ...
JDBC
補充:Jabc相關類介紹
1.Connection類
a.用於代表資料庫的鏈接,客戶端與資料庫所有交互都是通過connection對象完成的。
b.主要方法:
createStatement():創建向資料庫發送sql的statement對象。
prepareStatement(sql) :創建向資料庫發送預編譯sql的PrepareSatement對象。
prepareCall(sql):創建執行存儲過程的callableStatement對象。
setAutoCommit(boolean autoCommit):設置事務是否自動提交。
commit() :在鏈接上提交事務。
rollback() :在此鏈接上回滾事務。
2.Statement類
a.Statement對象用於向資料庫發送SQL語句。
b.主要方法:
executeQuery(String sql) :用於向數據發送查詢語句。
executeUpdate(String sql):用於向資料庫發送insert、update或delete語句
execute(String sql):用於向資料庫發送任意sql語句
addBatch(String sql) :把多條sql語句放到一個批處理中。
executeBatch():向資料庫發送一批sql語句執行。
3.ResultSet類
a.ResultSet用於代表Sql語句的執行結果。
b.Resultset封裝執行結果時,採用的類似於表格的方式。
c.ResultSet 對象維護了一個指向表格數據行的游標,初始的時候,游標在第一行之前,調用ResultSet.next() 方法,可以使游標指向具體的數據行,進行調用方法獲取該行的數據。
d.主要方法:
獲取任意類型的數據:
getObject(int index)
getObject(string columnName)
獲取指定類型的數據:
getString(int index)
getString(String columnName)
對結果集進行回滾:
next():移動到下一行
Previous():移動到前一行
absolute(int row):移動到指定行
beforeFirst():移動resultSet的最前面。
afterLast() :移動到resultSet的最後面。
一、JAVA與Mysql連接
1.載入驅動程式:
Class.forName("com.jdbc.mysql.Driver");
(須導入jar包)
2.獲得資料庫連接:
Connection conn=DriverManager.getConnection(url,usr,pw);
//url:資料庫鏈接
//user&password:資料庫登錄用戶及密碼
3.資料庫操作:
//通過Connetion對象獲得Statement對象
Statement stmt=conn.CreateStatment();
//通過Statement對象獲得ResultSet對象
ResultSet rs1=stmt.excuteQquery("sql查詢語句");
ResultSet rs2=stmt.excuteUpdate("sql改動語句");
補充: 一般多用PreparedStatement,預編譯的,效率高,更清晰
二、JDBC調用存儲過程
1.存儲過程定義及調用:
2.調用類型:
a.JDBC調用無參數的存儲過程
a.JDBC調用帶輸入參數的存儲過程
a.JDBC調用帶輸出參數的存儲過程
a.JDBC調用帶輸入輸出參數的存儲過程
三、JDBC事務管理
1.事務管理:
a.一系列操作打包在一起執行,是一個邏輯單元
b.原子性:事務是一個完整的操作
c.一致性:事務完成時,數據必須處於一致狀態
d.隔離性:對資料庫操作的併發事務之間是隔離的
e.永久性:事務完成後對資料庫的修改永久保持
2.JDBC對事務管理的支持:
a.JDBC通過commit()/rollback()來管理事務的操作
b.事務操作預設是自動提交的
c.通過setAutoCommit(false)禁止自動提交
三、JDBC與資料庫連接池
1.資料庫連接池:
a.解決數據連接量大的問題
b.連接池中放一定的Connection,連接滿時讓其他用戶等待
c.開源資料庫連接池:dbcp/c3p0
2.dbcp的使用:
a.導入jar包
b.建立配置文件 dbcp.properties
c.編寫相關類文件
3.c3po的使用:
a.導入jar包
b.建立配置文件 c3p0.properties
c.編寫相關類文件
4.dbcp與c3po的比較:
四、相關框架介紹
1.Commons-dbutils:
*****核心介面*****
2.Hibernate:
(1)優缺點
(2)核心介面
a.Session: CRUD操作
b.SessionFactory: 初始化Hibernate
c.Configuaration: 配置及啟動Hibernate
d.Transaction: 事務操作
e.Query/Criteria: 資料庫查詢
3.Mybatis:
特點
五、JDBC與Tomcat
1、在Web項目的WebRoot目錄下的META-INF目錄創建一個context.xml文件
2、在context.xml文件配置tomcat伺服器的數據源
3、將資料庫的驅動jar文件放置在tomcat的lib文件夾下
4、在獲取資料庫連接的工具類(如jdbcUtils)的靜態代碼塊中獲取JNDI容器中的數據源
1.Context.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/datasource"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="20114665"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jdbc_review"
maxActive="8"
maxIdle="4"/>
</Context>
2.獲取DataSource
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
dataSource = (DataSource)envCtx.lookup("jdbc/datasource");