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

Java七步創建以JDBC連接數據庫的程序

本文主要介紹了使用Java創建一個以JDBC連接數據庫的程序需要的7個步驟。
 

    JDBC連接數據庫

    ◆  創建一個以JDBC連接數據庫的程序,包含7個步驟:

    1、加載JDBC驅動程序:

    在連接數據庫之前,首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機),
    這通過java.lang.Class類的靜態方法forName(String className)實現。

    例如:

                                                     
    1. try{
    2. //加載MySql的驅動類
    3. Class.forName(“com.mysql.jdbc.Driver”) ;
    4. }catch(ClassNotFoundException e){
    5. System.out.println(“找不到驅動程序類 ,加載驅動失?。?#8221;);
    6. e.printStackTrace() ;
    7. }
     

    成功加載后,會將Driver類的實例注冊到DriverManager類中。

    2、提供JDBC連接的URL

    ◆  連接URL定義了連接數據庫時的協議、子協議、數據源標識。

    ◆  書寫形式:協議:子協議:數據源標識

    協議:在JDBC中總是以jdbc開始

    子協議:是橋連接的驅動程序或是數據庫管理系統名稱。

    數據源標識:標記找到數據庫來源的地址與連接端口。

    例如:(MySql的連接URL)

                                                                                                                     
    1. jdbc:mysql:
    2. //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
     

    useUnicode=true:表示使用Unicode字符集。如果characterEncoding設置為gb2312或GBK,本參數必須設置為true
    。characterEncoding=gbk:字符編碼方式。

    3、創建數據庫的連接

    ◆  要連接數據庫,需要向java.sql.DriverManager請求并獲得Connection對象,該對象就代表一個數據庫的連接。
    ◆ 
    使用DriverManager的getConnectin(String url , String username , String password
    )方法傳入指定的欲連接的數據庫的路徑、數據庫的用戶名和 密碼來獲得。

    例如:

                                                                                                                                             
    1. //連接MySql數據庫,用戶名和密碼都是root
    2. String url = “jdbc:mysql://localhost:3306/test” ;
    3. String username = “root” ;
    4. String password = “root” ;
    5. try{
    6. Connection con =
    7. DriverManager.getConnection(url , username , password ) ;
    8. }catch(SQLException se){
    9. System.out.println(“數據庫連接失敗!”);
    10. se.printStackTrace() ;
    11. }
     

    4、創建一個Statement

    ◆  要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:

    1、執行靜態SQL語句。通常通過Statement實例實現。

    2、執行動態SQL語句。通常通過PreparedStatement實例實現。

    3、執行數據庫存儲過程。通常通過CallableStatement實例實現。

    具體的實現方式:

                                                                                                                                                                                                                                             
    1. Statement stmt = con.createStatement() ;
    2. PreparedStatement pstmt = con.prepareStatement(sql) ;
    3. CallableStatement cstmt =
    4. con.prepareCall(“{CALL demoSp(? , ?)}”) ;
     

    5、執行SQL語句

    Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute

    1、ResultSet executeQuery(String
    sqlString):執行查詢數據庫的SQL語句,返回一個結果集(ResultSet)對象。

    2、int executeUpdate(String sqlString):用于執行INSERT、UPDATE或DELETE語句以及SQL
    DDL語句,如:CREATE TABLE和DROP TABLE等

    3、execute(sqlString):用于執行返回多個結果集、多個更新計數或二者組合的語句。

    具體實現的代碼:

                                                                                                                                                                                                                                                                                     
    1. ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ;
    2. int rows = stmt.executeUpdate(“INSERT INTO …”) ;
    3. boolean flag = stmt.execute(String sql) ;
     

    6、處理結果

    兩種情況:

    1、執行更新返回的是本次操作影響到的記錄數。

    2、執行查詢返回的結果是一個ResultSet對象。

    ◆  ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對這些

    行中數據的訪問。

    ◆  使用結果集(ResultSet)對象的訪問方法獲取數據:

                                                                                                                                                                                                                                                                                                                     
    1. while(rs.next()){
    2. String name = rs.getString(“name”) ;
    3. String pass = rs.getString(1) ; // 此方法比較高效
    4. }
     

    (列是從左到右編號的,并且從列1開始)

    7、關閉JDBC對象

    操作完成以后要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:

    1、關閉記錄集

    2、關閉聲明

    3、關閉連接對象

                                                                                                                                                                                                                                                                                                                                                             
    1. if(rs != null){ // 關閉記錄集
    2. try{
    3. rs.close() ;
    4. }catch(SQLException e){
    5. e.printStackTrace() ;
    6. }
    7. }
    8. if(stmt != null){ // 關閉聲明
    9. try{
    10. stmt.close() ;
    11. }catch(SQLException e){
    12. e.printStackTrace() ;
    13. }
    14. }
    15. if(conn != null){ // 關閉連接對象
    16. try{
    17. conn.close() ;
    18. }catch(SQLException e){
    19. e.printStackTrace() ;
    20. }
    21. }
     

    贊(0)
    分享到: 更多 (0)
    網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
    久久久久久九九精品久小说| 精品无码人妻一区二区三区不卡| 国产精品美女久久久久网| 国产精品特级毛片一区二区三区| 久久激情亚洲精品无码?V| 亚洲国产精品成人| 日韩特黄特色大片免费视频| 日韩精品无码免费视频| 国内精品久久久久影视| 精品少妇人妻AV无码专区不卡| 69SEX久久精品国产麻豆| 国产92成人精品视频免费| 91久久精品国产91久久性色tv | 国产精品原创巨作av女教师| 久久精品无码一区二区app| 国产高清在线精品一区二区三区 | 香蕉伊思人在线精品| 亚洲精品国产综合久久一线| 四虎国产精品永久在线看| 精品无码一区二区三区水蜜桃| 国产成人一区二区动漫精品 | 久久免费国产精品一区二区| 国产亚洲精品成人AA片新蒲金 | 孩交videos精品乱子豆奶视频| 精品一区二区三区波多野结衣| 欧洲精品色在线观看| 日韩精品内射视频免费观看| 杨幂国产精品福利在线观看| 亚洲中文久久精品无码| 亚洲精品无码久久久影院相关影片| 久久99国产精品99久久| 麻豆精品成人免费国产片| 国产精品日韩AV在线播放| 久久国产精品麻豆映画| 无码精品人妻一区二区三区中| 午夜不卡久久精品无码免费| 99精品视频在线在线视频观看| 人妻少妇精品中文字幕AV| 99久久国产综合精品女图图等你| 久久er99热精品一区二区| 久久精品国产免费观看三人同眠|