《Java程式設計》第十一章學習總結
201711671111 《Java程式設計》第十一章學習總結
1.查詢操作
- 步驟如下:
- 1.得到SQL查詢語句物件
try{ Statement sql=con.createStatement();
}
catch(SQLException e ){}
- 2.處理查詢結果
有了SQL語句物件後,這個物件就可以呼叫相應的方法實現對資料庫中表的查詢和修改,並將查詢結果存放在一個ResultSet類宣告的物件中。也就是說SQL查詢語句對資料庫的查詢操作將返回一個ResultSet物件,ResultSet物件是按“列”(欄位)組織的資料行構成。ResultSet
- ResultSet物件一次只能看到一個數據行,使用next()方法移到下一個資料行,獲得一行資料後,ResultSet物件可以使用getXxx方法獲得欄位值(列值),將位置索引(第一列使用1,第二列使用2等)或列名傳遞給getXxx方法的引數即可。
- 無論欄位是何種屬性,總可以使用getString(int columnIndex)或getString(String columnName)方法返回欄位值的串表示
- 3.關閉連線
- ResultSet
- 如果在程式碼 ResultSet rs = sql.executeQuery("SELECT * FROM students");之後立刻關閉連線con.close();程式將無法獲取rs中的資料
2.順序查詢
- 所謂順序查詢,是指ResultSet物件一次只能看到一個數據行,使用next()方法移到下一個資料行,
3.控制遊標
- 為了得到一個可滾動的結果集,需使用下述方法獲得一個Statement物件
- Statement stmt = con.createStatement(int type ,int concurrency);
4.條件與排序查詢
- where子語句:一般格式: select 欄位 from 表名 where 條件
- 排序:用order by子語句對記錄排序
5.更新、新增與刪除
- 更新:update 表 set 欄位 = 新值 where <條件子句>
- 新增:insert into 表(欄位列表) values (對應的具體的記錄) 或 insert into 表 values (對應的具體的記錄)
- 刪除:delete from 表名 where <條件子句>
6.使用預處理語句
- Connection和某個資料庫建立了連線物件con,那麼con就可以呼叫prepareStatement(String sql)方法對引數sql指定的SQL語句進行預編譯處理,生成該資料庫底層的內部命令,並將該命令封裝在PreparedStatement物件中,那麼該物件呼叫下列方法都可以使得該底層內部命令被資料庫執行。
- ResultSet executeQuery() boolean execute() int executeUpdate()
7.使用萬用字元
String str = "select * from mess where height < ? and name= ? "
PreparedStatement sql = con.prepareStatement(str);
8.通用查詢
- 編寫一個類,只要使用者將資料庫名、SQL語句傳遞給該類物件,那麼該物件就用一個二維陣列返回查詢的記錄。
- 結果集ResultSet物件rs呼叫getMetaData()方法返回一個ResultSetMetaData物件(結果集的元資料物件):
ResultSetMetaData metaData = rs.getMetaData();
- metaData,呼叫getColumnCount()方法就可以返回結果集rs中的列的數目:
int columnCount = metaData.getColumnCount();
- metaData呼叫getColumnName(int i)方法就可以返回結果集rs中的第i列的名字:
String columnName = metaData.getColumnName(i);
9.事務
- 事務由一組SQL語句組成,所謂事務處理是指:應用程式保證事務中的SQL語句要麼全部都執行,要麼一個都不執行。
- JDBC事務處理步驟
- 1.用setAutoCommit(booean b)方法關閉自動提交模式
- 2.用commit()方法處理事務
- 3.用rollback()方法處理事務失敗
10. 連線SQL Server資料庫
- 載入SQL Server驅動程式程式碼如下:
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){
}
- 連線的程式碼如下:
try{
String uri=
"jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse";
String user="sa";
String password="dog123456";
con=DriverManager.getConnection(uri,user,password);
}
catch(SQLException e){
System.out.println(e);
}
11.連線Derby資料庫
- 載入Derby資料庫驅動程式的程式碼是:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
- 連線(create取值是true)的程式碼是:
Connection con =
DriverManager.getConnection("jdbc:derby:students;create=true");