操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    JDBC(Java ),即Java數據庫連接。簡而言之,就是通過Java語言來操作數據庫。

    我們可以把JDBC理解成是官方定義的一套操作所有關系型數據庫的規則,規則即接口。

    也就是說,官方定義了一套操作所有關系型數據庫的接口,然后讓各個數據廠商(Mysql、等)用實現類去實現這套接口,再把這些實現類打包(數據驅動jar包),并提供數據驅動jar包給我們使用。

    我們可以使用這套JDBC接口進行編程,但是真正執行的代碼是驅動jar包中的實現類。

    為什么?因為JDBC是通過接口來調用方法的c 創建數據庫連接,當你導入了驅動jar包(實現類)后,那調用的方法肯定是實現類里面的方法。

    一、Mysql驅動包下載

    想要通過JDBC連接并操作Mysql數據庫,我們需要下載一個Mysql數據庫驅動jar包。

    兩種下載方式(點擊鏈接可直接前往下載)

    方式一:官網下載

    方式二:Maven倉庫下載

    下載后的jar包是這樣的(我的版本是8.0.15):

    系統:

    mysql--java-8.0.15-bin.jar

    Linux、Mac系統:

    mysql--java-8.0.15.jar

    二、JDBC實現步驟

    前提: 創建一個Java項目,在項目中新建一個libs目錄(為了方便管理jar包,需要把jar包放在此目錄下),在src目錄下建一個包,包下再建一個類。

    最終的目錄結構是這樣的:

    注:把下載的jar包拷貝到項目的libs下,別忘了點擊libs→右鍵→Add as (這才是真正導入jar包)。

    具體步驟:

    1、導入驅動jar包 2、注冊驅動 3、獲取數據庫的連接對象 4、定義sql語句 5、獲取執行sql語句的對象 6、執行sql并接收返回結果 7、處理結果 8、釋放資源

    實例:

    package cn.tkr.jdbc;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    public class JDBCDemo {
        public static void main(String[] args) throws Exception {   //下面方法有不同的異常,我直接拋出一個大的異常
    
            //1、導入驅動jar包
            //2、注冊驅動
            Class.forName("com.mysql.jdbc.Driver");
            //3、獲取數據庫的連接對象
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys", "root", "123456789");
            //4、定義sql語句
            String sql = "update Student set score = 99 where id = '10003' ";
            //5、獲取執行sql語句的對象
            Statement stat = con.createStatement();
            //6、執行sql并接收返回結果
            int count = stat.executeUpdate(sql);
            //7、處理結果
            System.out.println(count);
            //8、釋放資源
            stat.close();
            con.close();
        }
    }

    運行結果:

    代碼分析:

    subversion在創建版本庫時發生錯誤_centos svn創建版本庫_c 創建數據庫連接

    注冊驅動是為了讓程序知道,我們用的是哪個版本、哪個驅動包。

    獲取數據庫的連接對象,我們可以把這個對象理解成是Java代碼與數據庫之間的橋梁,將兩者連接起來。

    我們定義的sql語句,將來會通過一些操作發送給數據庫執行。從而達到Java代碼操作數據庫的目的。

    由于是連接對象,無法直接執行。所以我們要通過con.()來獲取執行sql語句的對象

    通過對象執行sql后,會返回一個int類型的數值,這個數值指的就是影響數據庫表的行數。

    最后,要對返回的結果進行處理,并釋放資源(為了避免內存泄漏)

    更新前的數據庫(sys),表中的數據:

    更新操作SQL語句:

    update Student set score = 99 where id = '10003'

    更新后的數據庫(sys),表中的數據:

    三、通過JDBC進行CRUD操作實例

    在上面的實例代碼中,其實還存在一個問題,如果代碼在執行過程中出現異常(如:找不到數據庫,密碼錯誤,sql語法錯誤等)c 創建數據庫連接,就無法正常釋放資源了。

    那為了解決這個問題,我們不再直接拋出異常,而是使用try-catch-來處理異常,把釋放資源的代碼放到代碼塊中,這就保證了不管有沒有出現異常,都能正常釋放資源。

    同時,也為了避免出現空指針異常,在進行釋放資源前需要通過條件語句進行判斷。

    下面的這幾個CRUD操作實例,我都會針對以上問題進行代碼優化。

    在演示操作實例之前,我們需要知道一下,執行sql語句的方法有哪些?

    | 返回值類型 | 方法名 | 描述 | |--|--|--| | | (Strng sql) | 可以執行任意的sql語句 | | int | (Strng sql) | 可以執行DML(、、)語句,DDL(、alter、drop)語句 | | | () | 可以執行DQL()語句 |

    1、添加(插入)一條記錄

    實例:

    package cn.tkr.jdbc;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class JDBCDemo {
        public static void main(String[] args) {   //下面方法有不同的異常,我直接拋出一個大的異常
    
            Connection con = null;
            Statement stat = null;
            try{
                //1、注冊驅動
                Class.forName("com.mysql.jdbc.Driver");
                //2、獲取數據庫的連接對象
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys", "root", "123456789");
                //3、定義sql語句
                String sql = "insert into Student value('10004','李白',21,59)";
                //4、獲取執行sql語句的對象
                stat = con.createStatement();
                //5、執行sql并接收返回結果
                int count = stat.executeUpdate(sql);
                //6、處理結果
                System.out.println(count);
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                if (con != null){   //避免空指針異常
    

    c 創建數據庫連接_centos svn創建版本庫_subversion在創建版本庫時發生錯誤

    //7、釋放資源 try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stat != null){ //避免空指針異常 //7、釋放資源 try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }

    執行的sql語句:

    insert into Student value('10004','李白',21,59)

    添加記錄后,表中的數據:

    2、修改(更新)一條記錄

    替換上述實例代碼中執行的sql語句:

    update Student set age = 20,score = 100 where id = '10002'

    修改記錄后,表中的數據:

    3、刪除一條記錄

    替換上述實例代碼中執行的sql語句:

    delete from Student where id = '10001'

    刪除記錄后,表中的數據:

    4、查詢表中的數據

    實例:

    package cn.tkr.jdbc;
    import java.sql.*;
    public class JDBCDemo {
        public static void main(String[] args) {   //下面方法有不同的異常,我直接拋出一個大的異常
    
            Connection con = null;
            Statement stat = null;
            ResultSet rs = null;
            try{
                //1、注冊驅動
                Class.forName("com.mysql.jdbc.Driver");
                //2、獲取數據庫的連接對象
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys", "root", "123456789");
                //3、定義sql語句
                String sql = "select * from Student";
                //4、獲取執行sql語句的對象
                stat = con.createStatement();
    

    c 創建數據庫連接_subversion在創建版本庫時發生錯誤_centos svn創建版本庫

    //5、執行sql并接收返回結果 rs = stat.executeQuery(sql); //6、處理結果 while (rs.next()){ //循環一次,游標移動一行 System.out.println("id:" + rs.getString(1)); // 獲取第一列的數據 System.out.println("name:" + rs.getString("name")); //獲取字段為name的數據 System.out.println("age:" + rs.getInt(3)); // 獲取第三列的數據 System.out.println("score:" + rs.getInt(4)); // 獲取第四列的數據 System.out.println("-------------------"); } }catch (Exception e){ e.printStackTrace(); }finally { if (con != null){ //避免空指針異常 //7、釋放資源 try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stat != null){ //避免空指針異常 //7、釋放資源 try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } if (rs != null){ //避免空指針異常 //7、釋放資源 try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }

    運行結果:

    id10002
    name李四
    age20
    score100
    -------------------
    id10003
    name王五
    age18
    score99
    -------------------
    id10004
    name李白
    age21
    

    centos svn創建版本庫_c 創建數據庫連接_subversion在創建版本庫時發生錯誤

    score59 -------------------

    四、使用Druid優化JDBC

    1、Druid簡介與功能

    Druid是目前最好的數據庫連接池實現技術。在功能、性能、擴展性方面,都是非常強大的。

    Druid是一個JDBC組件,基于-Chain模式的插件體系、 高效可管理的數據庫連接池、等。

    Druid的功能:

    Druid提供了一個高效、功能強大、可擴展性好的數據庫連接池。

    可以擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的機制,很方便編寫JDBC層的擴展插件。

    還可以監控數據庫的訪問性能,Druid內置提供了一個功能強大的插件,能夠詳細統計SQL的執行性能。

    SQL執行日志,Druid提供了多種,能夠支持、、Log4j和,你可以按需要選擇相應的,來監控應用的數據庫訪問情況。

    2、Druid如何優化JDBC

    JDBC連接數據庫,主要步驟是注冊驅動、獲取數據庫的連接對象、定義sql語句、獲取執行sql語句的對象、執行sql并接收返回結果、處理結果、釋放資源。

    那如果有很多個用戶訪問數據庫,那是不是要多次注冊驅動、多次建立連接。

    由于建立數據庫連接本身就是一個非常耗時、耗資源的行為。

    所以我們需要通過連接池預先同數據庫建立一些連接,并放在內存中。

    當應用程序需要建立數據庫連接時,可以直接到連接池中申請一個,用完后再放回去。

    這樣極大的提高了數據庫連接的性能問題,節省了資源和時間。

    3、下載Druid所需要的jar包

    我們需要兩個jar包:

    (1)druid-1.1.12.jar

    (2)mysql--java-8.0.15.jar

    下載方式:Maven倉庫下載

    4、Druid實例

    創建一個Java項目,我自己創建的項目名是,在項目下創建一個libs目錄,用來放Druid所需要的jar包。

    放這兩個包,一個都不能少:

    druid-1.1.12.jar

    mysql--java-8.0.15.jar

    詳細步驟:

    1、把剛才下載的druid-1.1.12.jar和mysql--java-8.0.15.jar,拷貝到libs目錄中,拷貝完別忘了

    libs→右鍵→Add as ...

    2、定義配置文件,文件是形式的,可以叫任意名稱,可以放在任意目錄下(我這邊放在src目錄下)。

    Druid.文件內容:

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/sys
    username=root
    password=123456789
    initialSize=5
    maxActive=10
    maxWait=3000

    等號右邊的值必須用自己的,具體格式如下:

    =com.mysql.jdbc.

    Mysql驅動都是這樣寫,如果你沒導入mysql--java-8.0.15.jar,就算寫了,等下執行程序還是會報錯的,會提示找不到驅動類。

    url=jdbc:mysql://IP地址:端口號/數據庫名

    比如,我用的是Mysql數據庫,sys是我創建的一個數據庫。如果用的是本地的數據庫,可以省略IP地址和端口號,比如這樣:url=jdbc:mysql:///sys

    =數據庫用戶名

    我的用戶名是root,一般默認都是root。

    =密碼

    =初始化連接數量

    =最大連接數

    =最大等待時間(單位毫秒)

    初始化連接數量、最大連接數、最大等待時間都是可以自己定義的。

    3、隨便創建一個包,再隨便創建一個類,然后就開始寫代碼了。

    第一步,加載配置文件Druid.。

    第二步、獲取數據庫連接池對象,通過工廠來獲取 ry。

    centos svn創建版本庫_subversion在創建版本庫時發生錯誤_c 創建數據庫連接

    最后,獲取連接,然后就可以進行數據庫相關操作了。

    類的代碼:

    package cn.tkr.datasource;
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    import javax.sql.DataSource;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.Statement;
    import java.util.Properties;
    public class DruidDemo {
        public static void main(String[] args) throws Exception {
            //1、導入jar包
            //2、定義配置文件
            //3、加載配置文件
            Properties pro = new Properties();
            InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("Druid.properties");
            pro.load(is);
            //4、獲取數據庫連接池對象
            DataSource ds = DruidDataSourceFactory.createDataSource(pro);
            //5、獲取連接
            Connection con = ds.getConnection();
            /*
             *  6、數據庫相關操作
             */
            //定義sql語句
            String sql = "update Student set id = '66666' where name = '李白'";
            //獲取執行sql的對象
            Statement statement = con.createStatement();
            //執行sql
            int pwd = statement.executeUpdate(sql);
            //處理結果
            System.out.println(pwd);
            //釋放資源
            statement.close();
            con.close();
        }
    }

    操作前,表中的數據:

    執行的sql語句:

    update Student set id = '66666' where name = '李白'"

    操作后,表中的數據:

    Druid實例Java項目參考圖;

    這只是一個簡單的實例。實際項目的開發過程中,并不是寫在主函數里面。

    我們一般會定義一個工具類(),在類中提供靜態代碼塊加載配置文件,初始化連接池對象。

    提供獲取連接方法(通過數據庫連接池獲取連接)、釋放資源、獲取連接池的方法。

    五、總結

    以上是我分享給大家的關于JDBC連接并操作Mysql數據庫以及Druid優化JDBC的一些總結。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有