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

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(“找不到驅動程序類 ,加載驅動失??!”);
    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號
    91天堂素人精品系列网站| 日韩av人人夜夜澡人人爽| 国产成人亚洲综合无码精品| 日韩一级在线视频| 国产乱子伦精品视频| 日本精品αv中文字幕| 中文字幕国产精品| 亚洲精品国偷自产在线| 国产精品狼人久久久久影院 | 日韩毛片一级好特黄| 97精品一区二区视频在线观看 | 国产精品久久女同磨豆腐| 天天视频国产精品| 亚洲av日韩综合一区二区三区| 日韩精品免费电影| 亚洲国产精品成人久久久| 亚洲αv在线精品糸列| 亚洲精品白浆高清久久久久久| 国产精品无码国模私拍视频| 国产精品免费综合一区视频| 精品无码国产一区二区三区51安| 久久亚洲国产成人精品性色| 亚洲国产精品一区二区第一页| 午夜亚洲av永久无码精品| 精品无码久久久久久久久| 久久精品免费全国观看国产| 亚洲国产精品lv| 少妇人妻偷人精品免费视频| 久久99九九99九九精品| 国产精品国产亚洲精品看不卡| 精品免费tv久久久久久久| 精品国内片67194| 国产精品亲子乱子伦xxxx裸| 日本精品高清一区二区| 中文精品人人永久免费| 久久精品国产亚洲7777| 久久精品成人影院| 久久久久久国产精品无码下载 | 久久精品aⅴ无码中文字字幕| 亚洲国产成人精品无码区在线观看 | 久久精品麻豆日日躁夜夜躁|