国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JDBC干貨篇一

hiyang / 2674人閱讀

摘要:干貨篇一基礎的全稱是,即數據庫連接,它是一種可以執行語句的。將光標移動到上一行,如果超過結果集的范圍則返回。列索引從開始,意味著行中的第一列是,第二列是,以此類推。

JDBC干貨篇一 JDBC基礎

JDBC的全稱是Java Database Connectivity,即Java數據庫連接,它是一種可以執行SQL語句的Java API。程序可通過JDBC API連接到關系數據庫,并使用結構化查詢語言(SQL,數據庫標準的查詢語言)來完成對數據庫的查詢、更新

與其他數據庫編程環境相比,JDBC為數據庫開發提供了標準的API,使用JDBC開發的數據庫應用可以跨平臺運行,而且還可以跨數據庫(如果全部使用標準的SQL語句)。也就是說如果使用JDBC開發一個數據庫應用,則該應用既可以在Windows操作系統上運行,又可以在Unix等其他操作系統上運行,既可以使用MySQL數據庫,又可以使用Oracle等其他的數據庫,應用程序不需要做任何的修改

加載數據庫驅動

Class.forName(classDriver)其中classDriver就是數據庫驅動類對應的字符串,下面給出加載mysql,oracle數據庫的例子:

Class.forName("com.mysql.jdbc.Driver");   //mysql
Class.forName("oracle.jabc.driver.OracleDriver");    //oracle
獲取數據庫連接

獲得數據庫連接的方法為DriverManager.getConnection(),其中有不同的參數,也對應不同的方法,下面將會詳細介紹

DriverManager.getConnection(String url)

DriverManager.getConnection(String url, Properties prop) 這里的Properties是一個屬性集,詳情請看文檔

DriverManager.getConnection(String url,String user,String password) 這里的urljdbc:mysql://localhost:3306/java_demo,其中java_demo表示你自己創建的數據庫名字,urser表示當前數據庫的登錄的用戶名,password表示密碼

        //第二種方法
        String url="jdbc:mysql://localhost:3306/java_demo";  //這是連接的url
        String user="root";
        String password="root";   
        Properties properties=new Properties();   //創建屬性集
        properties.setProperty("password", password);   //向起中添加屬性,很想python中的字典
        properties.setProperty("user",user);   
        Class.forName("com.mysql.jdbc.Driver");   //加載數據庫驅動
        Connection conn=DriverManager.getConnection(url,properties);   //連接數據庫
        
        //第三種方法
        
        Connection conn=DriverManager.getConnection(url,user,password);   //連接數據庫 
        

注意:以上只是一些例子,并不是完整的代碼,其中并沒有處理異常,還應該注意的是要關閉connection

查詢數據

查詢數據有兩種方法,分別為靜態查詢和動態查詢,靜態查詢使用的Statement,動態查詢使用的PrepareStatement,下面詳細介紹這兩種查詢方法

靜態查詢

使用的是Statement,其中常用的函數如下:

boolean execute(String SQL) 如果ResultSet對象可以被檢索,則返回的布爾值為 true ,否則返回 false 。當你需要使用真正的動態 SQL 時,可以使用這個方法來執行 SQL DDL 語句

int executeUpdate(String SQL) 返回執行 SQL 語句影響的行的數目。使用該方法來執行 SQL 語句,是希望得到一些受影響的行的數目,例如,INSERTUPDATEDELETE 語句

ResultSet executeQuery(String SQL) : 返回一個 ResultSet 對象。當你希望得到一個結果集時使用該方法,就像你使用一個 SELECT 語句。

close()關閉statement對象,這個是必須有的,為了程序的安全,必須在結束之前關閉

實例:

    Statement stmt = null;   //申請對象
try {
   stmt = connection.createStatement( );   //通過Connection對象創建statement對象
   
   String sql_1="select * from course;";
   String sql_2="select * from course where id=2;";
   
   ResultSet res_1=stm.executeQuery(sql_1);   //執行查詢語句,返回的是一個結果集合,上面已經說明了
   ResultSet res_2=stm.executeQuery(sql_1);
   
   while(res_1.next())
   {
   System.out.println(res_1.getInt(1)+"---"+res_1.getString(2));   //分別查詢第一列和第二列的值,通過列數查詢
   System.out.println(res_1.getInt("id")+"---"+res_1.getString("name"));   //通過列名查詢
   
   }
  
   }
catch (SQLException e) {    //捕捉異常
   . . .
}
finally {
    if(connection!=null)
    {
        connection.close();    //關閉連接
    }
   if(stmt!=null)
   {
       stmt.close();  //關閉
   }
}

說明:ResultSet常用的方法如下:注意下面的方法會發生SQLException異常

public void beforeFirst() 將光標移動到第一行之前。

public void afterLast() 將光標移動到最后一行之后。

public boolean first() 將光標移動到第一行。從第一行的數據開始讀取

public void last() 將光標移動到最后一行。

public boolean absolute(int row) 將光標移動到指定的第 row 行。

public boolean previous() 將光標移動到上一行,如果超過結果集的范圍則返回 false

public boolean next() 將光標移動到下一行,如果是結果集的最后一行則返回 false。

public int getRow() 返回當前光標指向的行數的值。

public void moveToInsertRow() 將光標移動到結果集中指定的行,可以在數據庫中插入新的一行。當前光標位置將被記住

public void moveToCurrentRow() 如果光標處于插入行,則將光標返回到當前行,其他情況下,這個方法不執行任何操作

public int getInt(String columnName) 返回當前行中名為 columnName 的列的 int 值。

public int getInt(int columnIndex) 返回當前行中指定列的索引的 int 值。列索引從 1 開始,意味著行中的第一列是 1 ,第二列是 2 ,以此類推。

getString(int columIndex) 返回指定列的String類型的數據

getString(String columName) 返回當前行中名為columNameString類型的值

動態查詢

動態查詢使用的PrepareStatement這個類實現的,PreparedStatement 接口擴展了 Statement 接口,它讓你用一個常用的 Statement 對象增加幾個高級功能。這個 statement 對象可以提供靈活多變的動態參數

實例:

PreparedStatement pstmt = null;
try {
   String SQL = "select * from course where age=? and name=?";
   pstmt = conn.prepareStatement(SQL);   //創建對象
   pstmt.setInt(1,22);   //設置參數age的值 ,1表示第一個參數
   pstmt.setString(2,"chenjiabing");   //設置name的值,其中2表示第二個參數
   ResultSet res=pstmt.execteQuery();
   while(res.next)
   {
       ....
   }
   
   . . .
}
catch (SQLException e) {
   . . .
}
finally {
    if(connection!=null)
    {
        connection.close();
    }
    if(pstmt!=null)
    {
    pstmt.close();   //關閉
    }

   . . .
}

說明:JDBC 中所有的參數都被用 ? 符號表示,這是已知的參數標記。在執行 SQL 語句之前,你必須賦予每一個參數確切的數值。其中PrepareStatement的常用函數如下,當然Statement中的execute ,executeQuery ,executeUpdate也可以使用

void setInt(int parameterIndex, int x) parameterIndex表示第幾個?,這里的int x表示是mysql中定義的int類型的值

void setString(int parameterIndex,String x) 為第parameterIndexString類型的?賦予x的值

其他的操作

這里還有delete,update,alter等一系列的操作都是和上面的一樣,就是把sql語句改變以下,如果使用的是靜態的就要為delete,update,使用Statement.execteUpdate(sql)這個函數,當然要使用動態的也是executeUpdate函數

更多內容請移步本人博客

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69947.html

相關文章

  • 干貨 | PHP就該這么學!

    摘要:梳理之后,目標就會被分解成一個個需要完成的具體任務。勤學學習效率與效果取決于執行力。這種選手即便幫他解決了問題,他也學不到東西。拆分任務將目標分解成具體可執行的學習任務。搜集知識資源查閱官方文檔購買書籍搜集網絡干貨文章。 前段時間和大家一起分享了一篇關于學習方法內容《大牛與搬運工的差距——學習方法的力量》。我們將學習過程分成八步,并借鑒了敏捷開發的迭代思想,以達到自我迭代學習的效果。行...

    wushuiyong 評論0 收藏0
  • 做IT這幾年,我整理了這些干貨想要送給你!

    摘要:資源獲取方式根據下面的索引,大家可以選擇自己需要的資源,然后在松哥公眾號牧碼小子后臺回復對應的口令,就可以獲取到資源的百度云盤下載地址。公眾號二維碼如下另外本文會定期更新,松哥有新資源的時候會及時分享給大家,歡迎各位小伙伴保持關注。 沒有一條路是容易的,特別是轉行計算機這條路。 松哥接觸過很多轉行做開發的小伙伴,我了解到很多轉行人的不容易,記得松哥大二時剛剛決定轉行計算機,完全不知道這...

    王晗 評論0 收藏0
  • Qt/Ununtu篇一:基于ubuntu操作系統下的Qt的安裝

    摘要:首先下載安裝包進入官網下載地址,如圖所示順帶說說目錄結構各種開發工具安裝包,新舊都有可以下載開發環境和源代碼。迷你版,目前是針對的版本。正式發布版,是與開發版相對的穩定版庫和開發工具可以下載開發環境和源代碼。 ...

    Galence 評論0 收藏0
  • 關于彈幕的制作第一篇一 樣式

    摘要:之前做了一個彈幕,樣式是這個樣子的詳情見,記得評論 之前做了一個彈幕,樣式是這個樣子的 showImg(https://segmentfault.com/img/bVkYTy); 詳情見 ,記得評論 http://blog.monokeroslun.xyz/xiang-mu-fen-xi-guan-yu-dan-mu-de-zhi-zuo/

    binaryTree 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<