【20131018】記錄
一、自我介紹
二、介紹專案
三、技術問題
******************Java常用的框架及各自優缺點
******************JDBC繼承的介面以及其常用的類
http://wenku.baidu.com/view/cb8eecb065ce0508763213fb.html
JDBC的全稱是Java DataBase Connectivity,是一套面向物件的應用程式介面(API),制定了統一的訪問各種關係資料庫的標準介面,為各個資料庫廠商提供了標準介面的實現。這東西能夠實現軟體的擴平臺性。
JDBC是一種底層API,在訪問資料庫是需要在業務邏輯中直接嵌入SQL語句。
JDBC不能夠直接訪問資料庫,必須依賴資料庫廠商提供的JDBC驅動程式完成以下三步工作1.同資料庫建立連線;2.向資料庫傳送SQL語句;3.處理從資料庫返回的結果。
*JDBC驅動
1.JDBC-ODBC橋連是指通過本地的OBDC Driver連線到RDBMS上。
2.JDBC-Native橋連通過呼叫本地的native程式實現資料庫連線,這種型別的驅動程式把客戶機API上的JDBC呼叫轉為Oracle,Sybase,Informix,DB2或者其它DBMS的呼叫。
3.JDBC網路驅動是一種完全利用Java語言編寫的JDBC驅動。
4.本地協議驅動是一種完全利用Java語言編寫的JDBC驅動,這種型別的驅動程式將JDBC呼叫直接轉換為DBMS所使用的網路協議。
#JDBC中常用介面
-Driver介面
每種資料庫的驅動程式都應該提供一個實現java.sql.Driver介面的類,簡稱Driver類。
載入JDBC-ODBC驅動:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
-DriverManager類
java.sql.DriverManager類負責管理JDBC驅動程式的基本服務,是JDBC的管理層,作用於使用者和驅動程式之間,負責跟蹤可用的驅動程式,並在資料和驅動程式之間建立連線。
(靜態方法)getConnection(String url,String user,String password)用來建立資料庫連線。
setLoginTimeout(int seconds)用來設定每次連線資料庫的最長時間
println(String message)用來輸出指定訊息到當前的JDBC日記流
-Connection介面
java.sql.Connection介面代表與特定資料庫的連線,在接連的上下文中可以執行SQL語句並返回結果,還可以通過getMetaData()方法獲得由資料庫提供的相關資訊。
createStatement()建立並返回一個Statement 例項,通常在執行無引數的SQL語句是建立例項。
-Statement介面
java.sql.Statement介面用來執行靜態SQL語句,並返回執行結果。
對於INSERT,IPDATE和DELETE語句,呼叫executeUpdate(String sql)方法;對於SELECT語句,則呼叫executeQuery(String sql)方法,並返回一個永遠不能為null的ResultSet例項。
-PreparedStatement介面
java.sql.PreparedStatement介面繼承並擴充套件了Statement介面,用來執行動態的SQL語句,即包含引數的SQL語句。
通過setXxx()方法為SQL語句中的引數賦值時,建議利用與引數型別匹配的方法,也可以利用setObject()為各種型別賦值。
PreparedStetement ps=connection.preparedStatement("select * from table_name where id>? and (name=? or name=?)");
ps.setInt(1,6);
ps.setString(2,"馬先生");
ps.setObject(3,"李先生");
ResultSet rs=ps.executeQuery();
clearParameters()清除當前引數的值。
-CallableStatement介面
java.sql.CallableStatement介面繼承並擴充套件PreparedStatement介面,用來執行SQL的儲存過程。
-ResultSet介面
java.sql.ResultSet介面類似於一個數據表,通過該介面的例項可以獲得檢索結果集,以及對應資料表的相關資訊,ResultSet例項通過執行查詢資料庫的語句生成。
next()方法可以將指標移動到下一行,返回bool型別。只能迭代一次!
getXxx()方法均有兩個過載方法,分別根據列的索引號和列的名稱檢索列值。
first(),返回bool值
last(),返回bool值
previous()將指標移動到上一行,返回bool值
beforeFirst()
afterLast()
absolute()移動到指定行,int>0向下移動,int<0,向後移動
relative()相對當前位置移動到指定行,int>0向下移動,int<0,向後移動
getRow()當前行索引編號
findColumn()檢視指定列名的索引編號
isBeforeFirst()檢視指標是否處於例項開頭,返回bool
isFirst()檢視指標是否處於第一行,返回bool
deleteRow()刪除當前行,執行該方法後,在執行close()之後才會同步到資料庫
******************JDBC如何管理事務:
通俗的說,事務(Transaction)就是對資料執行的一組操作,這些操作鈄資料從一種狀態更改為另一種狀態,他們必須為一個單元執行。
事務最主要的功能就是確保多個連續的操作必須全部執行成功,否則回覆到未執行任何資料操作的最初狀態。也就是說事務的結果只有兩種狀況:事務完成(Transactioncommit)
事務失敗(Transaction abort)
當事務失敗或異常中斷時,事務就會回滾(Transacton
roolback),回覆至資料的初始狀態。
start
A,B賬戶存在,
A要轉賬1000元
A賬戶扣除1000元
B賬戶增加1000元
end
start
setAutoCommit(false)
Insert,delete,update
data on database ---------------------->rollback
SQL Exception
commit ------------------------->rollback
SQL Exception
end
Auto Commit 設定為false.JDBC中,事務操作預設是自動提交,也就是說一條資料操作就是一項事務,操作成功則commit,失敗則rollback
可以將多個數據庫操作作為一個事務,操作完成後手動呼叫commit方法來進行整體提交;倘若其中一個操作打敗,則都不會執行到commit(),且將產生異常,此時就可以在異常捕獲時呼叫rollback()進行回滾。這樣就保證了多個數據操作的原子性。
與事務處理相關的方法都在Connection類中:
void setAutoCommit(boolean auto Commit)
boolean getAutoCommit()
void commit()
void rollback()
四、對公司瞭解,為什麼選擇這家公司