jdbc事務 數據源

事務:

   爲什麼要開啓事務,在程序中並不是編譯過了就行了,邏輯行的同才行。

   有了事務可以更好的幫我們執行邏輯


數據源:

    數據庫連接優化 幫我們更快的鏈接數據庫

    數據源有個數據庫池用的話直接從數據庫池中拿就行

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

public class T1 {
    /**
     * 常見connection對象
     */
    private static T1 ourInstance = new T1();
    private DataSource dataSource = null;//申請一個數據源 接口爲空

    public static T1 getInstance() {
        return ourInstance;
    }

    private T1() {//因爲這裏是構造器 只要創建對象就會先調用構造器
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        try {
            comboPooledDataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
            comboPooledDataSource.setJdbcUrl("jdbc:mysql://47.101.201.210/Test?useSSL=FALSE&serverTimezone=UTC");
            comboPooledDataSource.setUser("root");
            comboPooledDataSource.setPassword("Sb1996350.");
            comboPooledDataSource.setMaxPoolSize(3);//最大連接數
            comboPooledDataSource.setMinPoolSize(1);//最小連接數
            dataSource = comboPooledDataSource;
            Connection connection = dataSource.getConnection();//這裏需要dataSource中的getConnection這個方法來返回連接對象
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Connection getdataSource() throws Exception {
        return dataSource.getConnection();
    }

    public static void main(String[] args) throws Exception {
        Connection connection = new T1().getdataSource();
        connection.setAutoCommit(false);//開啓事務  爲什麼要開啓事務 因爲在代碼中不是編譯過了就算成功了,邏輯過了纔算成功
        connection.commit();//提交事務
        //開啓事務還有一個好處,事務有排它鎖,當你修改數據時能保證數據的唯一型
        connection.close();
    }
}

了,裏面是加載好的數據庫連接 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章