事務:
爲什麼要開啓事務,在程序中並不是編譯過了就行了,邏輯行的同才行。
有了事務可以更好的幫我們執行邏輯
數據源:
數據庫連接優化 幫我們更快的鏈接數據庫
數據源有個數據庫池用的話直接從數據庫池中拿就行
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();
}
}
了,裏面是加載好的數據庫連接