久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網
      最全最豐富的資訊網站

      Java程序開發(fā)學習之JDBC與MySQL數(shù)據庫

      Java程序開發(fā)學習之JDBC與MySQL數(shù)據庫

      相關學習推薦:java基礎

      一、JDBC連接數(shù)據庫的操作

      編寫時可以封裝在一個類里面簡化代碼。
      (1)加載JDBC-MySQL數(shù)據庫驅動

      try {     Class.forName("com.mysql.cj.jdbc.Driver");}catch (Exception e){ }

      (2)連接數(shù)據庫

      Connection con = null;//聲明要連接數(shù)據庫的對象comString uri = "jdbc:mysql://localhost:3306/數(shù)據庫名?useSSL=true &characterEncoding=utf-8";	//連接地址String user = "root";	//連接數(shù)據庫的用戶名String password = "123456";	//連接數(shù)據庫的密碼try {     con = DriverManager.getConnection(uri,user,password); 	//連接代碼}catch(SQLException e){ }

      (3)編寫操作數(shù)據庫中數(shù)據的代碼

      二、查詢操作

      1,查詢操作的具體步驟
      (1)向數(shù)據庫發(fā)送SQL語句:

      Statement sql;try{     sql = con.createStatement();}catch (SQLException e){ }

      首先聲明SQL語句對象,然后讓已創(chuàng)建的連接對象con調用方法createStatement()創(chuàng)建這個SQL語句對象。
      (2)處理查詢結果
      有了SQL語句對象后,這個對象可以調用相應的方法實現(xiàn)對數(shù)據庫中表的各項操作,其中查詢結果存放在一個ResultSet類聲明的對象中。即SQL查詢語句對數(shù)據庫的查詢操作講放回一個ResultSet對象,ResultSet由“列”(字段)組織的數(shù)據行構成。

      rs = sql.executeQuery("select * from 表的名稱");//讀取表中的所有列,*為通配符rs = sql.executeQuery("select 行1字段名,行2字段名... from 表的名稱");//讀取表中特定的列

      ResultSet對象一次只能看到一行數(shù)據,使用next()方法移到下一行。ResultSet對象可以通過getXxx(int columnIndex)獲得列值和通過傳遞列名getXxx(String columnName)獲得列值。
      (3)關閉連接

      con.close(); //關閉con所連接的數(shù)據庫

      注意:數(shù)據庫與連接對象緊密綁定,應在使用完數(shù)據庫再進行關閉操作。

      2,控制游標
      結果集的游標的初始位置在結果集第一行的前面,結果集調用next()方法向下(后)移動游標,移動成功返回true,移動失敗返回false。如果要在結果集中移動并顯示若干條記錄,必須返回一個滾動的結果集。方法如下:

      Statement stmt = con.createStatement(int type,int concurrency);//獲得一個Statement對象,根據參數(shù)的值,stmt返回相應類型的結果集:ResultSet re = stmt.executeQuery(SQL語句);type的取值:決定滾動方式: ResultSet.TYPE_FORWARD_ONLY 結果集的游標只能向下滾動 ResultSet.TYPE_SCROLL_INSENSITIVE 游標可以上下移動,數(shù)據庫變化時,結果集不變 ResultSet.TYPE_SCROLL_SENSITIVE 返回可滾動的結果集,數(shù)據變化時,結果集同步改變 Concurrency取值:決定是否可以用結果集更新數(shù)據庫 ResultSet.CONCUR_READ_ONLY 不能用結果集更新數(shù)據庫中的表 ResultSet.CONCUR_UPDATABLE 能用結果集更新數(shù)據庫中的表  滾動查詢常用的ResultSet的方法:public boolean previous() 將游標向上移動,當移動到結果集第一行之前時返回falsepublic void beforeFirst() 將游標移動到結果集的初始位置,第一行之前public void afterLast() 將游標移動到結果集的最后一行之后public void first() 將游標移動到第一行public void last() 將游標移動到最后一行public boolean isAfterLast() 判斷游標是否在最后一行之后public boolean isBeforeFirst() 判斷游標是否在第一行游標之前public boolean isFirst() 判斷游標是否指向第一行public boolean isLast() 判斷游標是否指向最后一行public int getRow() 得到當前游標所指向的行號,行號從1開始,如果結果集沒有行,返回0public boolean absolute(int row) 將游標移動到參數(shù)row指定的行(參數(shù)取負數(shù)即倒數(shù))

      (3)條件與排序查詢
      where子語句:select 字段 from 表明 where 條件

      (1)字段值與固定值比較 select * from table where name='張三'(2)字段值在某個區(qū)間 select * from table where number>5 and number<10 and name!='李四'(3)使用某些特殊的日期函數(shù)(Data:year-month-day)select * from table where year(表明日期的字段名)<1980 and month(表面日期的字段名)<=10select * from table where year(表明日期的字段名) between 2002 and 2021(4)使用某些特殊的時間函數(shù)(hour,minute,second) select * from timelist where second(表明時間的字段名)=36(5)用操作符like進行模式匹配,使用%代替0個或多個字符,用一個下劃線_代替一個字符。 select * from table where name like'%歐%' //查詢name字段有“歐”字的記錄

      order by語句:可結合where語句使用

      select * from table order by height select * from table where name like '%王%' order by name

      三、更新、添加和刪除操作

      Statement對象調用public int executeUpdate(String sqlStatement);通過參數(shù)指定的方式對數(shù)據庫表中的記錄的更新、添加和刪除操作。

      (1)更新 update 表名 set 字段 = 新值 where <條件子句>(2)添加 insert into 表 values (對應具體的記錄)(3)刪除 delete from 表名 where <條件子句>

      四、使用預處理語句

      Java提供了更高效的數(shù)據庫操作機制,就是PreparedStatement對象,即預處理語句對象。將SQL語句處理為數(shù)據庫底層語句,再傳輸給數(shù)據庫。
      使用通配符:對SQL進行預處理時,可以用 通配符? 來代替字段的值,只要在預處理語句執(zhí)行之前再設置通配符所代表的具體值即可:

      String str = "select * from 表名 where 字段1 < ? and 字段2 = ?";PreparedStatement sql = con.prepareStatement(str);sql.setXxx(int parameterIndex,Type x);//該方法設置?代表的值,parameterIndex代表第幾個?,x代表要替換的值。

      五、通用查詢

      編寫通用查詢類,用戶可以將數(shù)據庫名、SQL語句傳遞給該類的對象,那么該對象就用一個二維數(shù)組返回查詢的記錄。
      編寫通用查詢類需要知道數(shù)據庫表列(字段)的名字和數(shù)量。常用方法為用結果集ResultSet對象rs調用getMetaData()方法返回一個ResultSetMetaData對象:

      ResultSetMetaData metaData = rs.getMetaData();

      然后該對象metaData調用getColumnCount()方法既可以返回rs中列的數(shù)目,調用getColumnName(int i)就可以返回結果集rs中第i列的名字。

      六、事務

      1,事務及處理
      事務由一組SQL語句組成。所謂事務處理,是指應用程序保證事務中的SQL語句要么全部被執(zhí)行,要么一個都不被執(zhí)行。事務處理是保證數(shù)據庫中數(shù)據完整性與一致性的重要機制。

      2,JDBC事務處理
      用setAutoCommit(boolean b)方法關閉自動模式:
      即關閉SQL語句的即刻生效性,兩個相關聯(lián)的操作應該在都執(zhí)行完畢后才改變數(shù)據庫中的數(shù)據。方法為在獲取sql對象前讓連接對象調用該方法:

      con.setAutoCommit(false);

      用commit()方法處理事務:
      關閉自動模式后,讓sql對象提交多條SQL(即同一事務)語句,這些語句不會立即生效,而是直到連接對象調用方法后全部生效:

      con.commit();

      用rollback()方法處理事務失?。?br /> 即撤銷事務所作的操作。在con調用commit()方法進行事務處理時,只要有一個SQL語句沒有執(zhí)行成功,那么該事務執(zhí)行失敗,拋出SQLException異常。這時必須讓con調用rollback()方法撤銷引起數(shù)據變化的所有操作:

      con.rollback();

      相關免費學習推薦:mysql視頻教程

      贊(0)
      分享到: 更多 (0)
      網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號