1. 程式人生 > >《Java程式設計》第十一章學習總結

《Java程式設計》第十一章學習總結

201711671111 《Java程式設計》第十一章學習總結

1.查詢操作

  • 步驟如下:
  • 1得到SQL查詢語句物件

try{  Statement sql=con.createStatement();

}

catch(SQLException e ){}

  •  2.處理查詢結果

 有了SQL語句物件後,這個物件就可以呼叫相應的方法實現對資料庫中表的查詢和修改,並將查詢結果存放在一個ResultSet類宣告的物件中。也就是說SQL查詢語句對資料庫的查詢操作將返回一個ResultSet物件,ResultSet物件是按“列”(欄位)組織的資料行構成。ResultSet

rs = sql.executeQuery("SELECT * FROM students");

  • ResultSet物件一次只能看到一個數據行,使用next()方法移到下一個資料行,獲得一行資料後,ResultSet物件可以使用getXxx方法獲得欄位值(列值),將位置索引(第一列使用1,第二列使用2等)或列名傳遞給getXxx方法的引數即可。
  •  無論欄位是何種屬性,總可以使用getString(int columnIndex)getString(String columnName)方法返回欄位值的串表示
  •  3.關閉連線
  •  ResultSet
    物件和資料庫連線物件(Connection物件)實現了緊密的繫結,一旦連線物件被關閉,ResultSet物件中的資料立刻消失。這就意味著,應用程式在使用ResultSet物件中的資料時,就必須始終保持和資料庫的連線,直到應用程式將ResultSet物件中的資料檢視完畢。
  • 如果在程式碼 ResultSet rs = sql.executeQuery("SELECT * FROM students");之後立刻關閉連線con.close();程式將無法獲取rs中的資料

2.順序查詢

  • 所謂順序查詢,是指ResultSet物件一次只能看到一個數據行,使用next()方法移到下一個資料行,
    next()方法最初的查詢位置,即遊標位置,位於第一行的前面。next()方法向下(向後、資料行號大的方向)移動遊標,移動成功返回true,否則返回false

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");