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

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號
    日韩黄色片在线观看| 国产精品无码无卡在线观看久| 精品亚洲综合久久中文字幕| 日韩av片无码一区二区不卡电影| 国产精品国产三级国产普通话a| 3D动漫精品一区二区三区| 久久久久国产精品熟女影院| 亚洲日韩精品无码一区二区三区| 国产伦精品一区二区三区视频猫咪 | 久久久久亚洲精品成人网小说| 中文字幕久久精品无码| 精品乱子伦一区二区三区| 丰满人妻熟妇乱又伦精品软件| 日韩高清一区二区三区不卡| 亚洲国产日韩一区高清在线| 无码日韩人妻AV一区二区三区| 国产精品漂亮美女在线观看| 狠狠精品干练久久久无码中文字幕 | 好男人视频社区精品免费| 国产精品久久久久久久人人看 | 中文字幕日韩三级片| 国产成人精品福利色多多| 国产精品va无码二区| 国产精品自在在线午夜出白浆| 在线观看精品国产福利片87| 1313午夜精品理论片| 在线观看精品一区| 日本久久中文字幕精品| 国产精品一区二区四区| 91亚洲精品第一综合不卡播放| 日本伊人精品一区二区三区| 99精品在线免费观看| 日韩精品亚洲人成在线观看 | 精品久久久久国产| 热久久综合这里只有精品电影| 日韩精品中文字幕在线观看| 国产精品爽爽va在线观看无码| 国产精品一区二区在线观看| 中文字幕日韩精品在线| 日韩欧美一区二区三区免费观看| 伊人天堂av无码av日韩av|