久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Java程序開發(fā)學(xué)習(xí)之JDBC與MySQL數(shù)據(jù)庫(kù)

      Java程序開發(fā)學(xué)習(xí)之JDBC與MySQL數(shù)據(jù)庫(kù)

      相關(guān)學(xué)習(xí)推薦:java基礎(chǔ)

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

      編寫時(shí)可以封裝在一個(gè)類里面簡(jiǎn)化代碼。
      (1)加載JDBC-MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)

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

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

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

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

      二、查詢操作

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

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

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

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

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

      con.close(); //關(guān)閉con所連接的數(shù)據(jù)庫(kù)

      注意:數(shù)據(jù)庫(kù)與連接對(duì)象緊密綁定,應(yīng)在使用完數(shù)據(jù)庫(kù)再進(jìn)行關(guān)閉操作。

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

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

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

      (1)字段值與固定值比較 select * from table where name='張三'(2)字段值在某個(gè)區(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í)間函數(shù)(hour,minute,second) select * from timelist where second(表明時(shí)間的字段名)=36(5)用操作符like進(jìn)行模式匹配,使用%代替0個(gè)或多個(gè)字符,用一個(gè)下劃線_代替一個(gè)字符。 select * from table where name like'%歐%' //查詢name字段有“歐”字的記錄

      order by語(yǔ)句:可結(jié)合where語(yǔ)句使用

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

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

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

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

      四、使用預(yù)處理語(yǔ)句

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

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

      五、通用查詢

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

      ResultSetMetaData metaData = rs.getMetaData();

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

      六、事務(wù)

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

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

      con.setAutoCommit(false);

      用commit()方法處理事務(wù):
      關(guān)閉自動(dòng)模式后,讓sql對(duì)象提交多條SQL(即同一事務(wù))語(yǔ)句,這些語(yǔ)句不會(huì)立即生效,而是直到連接對(duì)象調(diào)用方法后全部生效:

      con.commit();

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

      con.rollback();

      相關(guān)免費(fèi)學(xué)習(xí)推薦:mysql視頻教程

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