Java
連接 MySQL
數據庫方法
1、傳統的連接方式
導入
mysql-connector-java-x.x.x-bin.jar
驅動包,也可以參考 https://blog.csdn.net/github_38336924/article/details/82352869 文章註冊驅動
# 動態加載mysql驅動
Class.forName("com.mysql.jdbc.Driver");
- 獲取連接
String url = "jdbc:mysql://localhost:3306/mypro";
String user = "dadeity";
String password = "*****";
Connection conn = DriverManager.getConnection(url, user, password);
- Code
public static Connection getConnection() throws ClassNotFoundException {
String url="jdbc:mysql://192.168.137.142:3306/mypro";
String user="dadeity";
String password="*****";
String driverClass="com.mysql.jdbc.Driver";
Connection con=null;
Class.forName(driverClass);
try {
con=DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
2、讀取配置文件方式
- 在
src
目錄下創建一個以.properties
結尾的配置文件,內容如下
driver:com.mysql.jdbc.Driver
url:jdbc:mysql://192.168.137.142:3306/mypro
user:dadeity
password:****
- 讀取配置文件
InputStream inputStream = DemoTwo.class.getClassLoader().getResourceAsStream("db.properties");
- 創建
Properties
對象
Properties pro = new Properties();
- 裝載
pro.load(inputStream);
- 解析
String driver = pro.getProperty("driver");
String url = pro.getProperty("url");
String user = pro.getProperty("user");
String password = pro.getProperty("password");
- 註冊驅動獲取連接
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
- Code
public static Connection getConnection() throws IOException, ClassNotFoundException {
// 讀取類路徑下的jdbc.propreties文件(配置文件)
InputStream inputStream = DemoTwo.class.getClassLoader().getResourceAsStream("db.properties");
// 創建 Properties 對象
Properties pro = new Properties();
// 裝載
pro.load(inputStream);
// 解析
String driver = pro.getProperty("driver");
String url = pro.getProperty("url");
String user = pro.getProperty("user");
String password = pro.getProperty("password");
Connection conn = null;
// 註冊驅動獲取連接
Class.forName(driver);
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
3、c3p0
連接池連接數據庫
所需的jar包:c3p0-0.9.2.1.jar
,mchange-commons-java-0.2.3.4.jar
,mysql-connector-java-5.1.40-bin.jar
下載並導入
c3p0-*.jar
下載地址 http://www.java2s.com/Code/Jar/c/Downloadc3p00921jar.html
mchange-commons-java-*.jar
下載地址http://www.java2s.com/Code/Jar/m/Downloadmchangecommonsjava0234jar.htm在
src
目錄下新建c3p0-config.xml
文件,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="helloc3p0">
<!-- 連接數據源的基本屬性 -->
<property name="user">dadeity</property>
<property name="password">*****</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://192.168.137.142/mypro</property>
<!-- 若數據庫中連接數不足時,一次向數據庫服務器申請多少個連接 -->
<property name="acquireIncrement">5</property>
<!-- 初始化數據庫連接池時連接的數量 -->
<property name="initialPoolSize">5</property>
<!-- 數據庫連接池中的最小的數據庫連接數 -->
<property name="minPoolSize">5</property>
<!-- 數據庫連接池中的最大的數據庫連接數 -->
<property name="maxPoolSize">10</property>
<!-- c3p0數據庫連接可以維護的statement的個數 -->
<property name="maxStatements">20</property>
<!-- 每個連接同時可以使用的statement對象的個數 -->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
- 獲取連接Code
// 定義全局變量
private static ComboPooledDataSource ds;
// 靜態代碼塊,命名配置
static {
ds = new ComboPooledDataSource("helloc3p0");
}
// 獲取數據源
public static DataSource getDataSource() {
return ds;
}
// 獲取連接
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
4、數據庫連接池
所需的jar
包:commons-dbcp2-2.5.0.jar
和相關的jar
包
下載
commons-dbcp2-*.jar
下載地址 http://www-eu.apache.org/dist//commons/dbcp/binaries/commons-dbcp2-2.5.0-bin.tar.gz創建基礎數據源
BasicDataSource bs=new BasicDataSource();
- 設置屬性
bs.setDriverClassName("com.mysql.jdbc.Driver");
bs.setUrl("jdbc:mysql://192.168.137.142:3306/mypro");
bs.setUsername("dadeity");
bs.setPassword("*****");
- Code
public static BasicDataSource getBasicDataSource(){
// 實例化BasicDataSource
BasicDataSource bs=new BasicDataSource();
// 設置BasicDataSource屬性
// 設置四個屬性
bs.setDriverClassName("com.mysql.jdbc.Driver");
bs.setUrl("jdbc:mysql://192.168.137.142:3306/mypro");
bs.setUsername("dadeity");
bs.setPassword("*****");
return bs;
}