JDBC連接數據庫兩種操作
1.沒有通過常量池的簡單連接
配置文件
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://127.0.0.1:3306/jdbc
user = root
password = 123456
主函數調用方法
package com.jdbc.test;
import java.io.IOException;
import java.sql.SQLException;
public class JdbcTest {
public static void main(String[] args) throws ClassNotFoundException, IOException, SQLException {
Method method = new Method();
method.Jdbc();
}
}
連接方法
package com.jdbc.test;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class Method {
public void Jdbc() throws IOException, ClassNotFoundException, SQLException {
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(inputStream); //讀流
inputStream.close();
String ClassName = properties.getProperty("driverClassName");
String url = properties.getProperty("url");
String user = properties.getProperty("user");
String password = properties.getProperty("password");
Class.forName(ClassName);
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
connection.close();
}
}
2.通過連接池連接
在連接數據庫時,為數據庫建立一個"緩沖池"。在需要建立數據庫連接時,只需要從”緩沖池“中取出一個,使用完畢之后再放回。
允許應用程序重復使用一個現有的數據庫連接,而不是每次都重新建立一個。
其優點就是有:
1.資源重用,
2.更快的系統反應速度,
3.新的資源分配手段,
4.統一的連接管理,避免數據庫連接泄露.
以下是Druid數據庫連接池,連接數據庫代碼
配置文件 druid.properties
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://127.0.0.1:3306/jdbc
username = root
password = 123456
initialSize = 5
maxActive = 50
minIdle = 10
JdbcUtil類構建連接池鏈接庫方法
package com.jdbc.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource; //注意導包,很容易出錯
import com.alibaba.druid.pool.DruidDataSourceFactory;
/**
* 進行封裝 ,通過dataSource獲取配置文件,連接數據庫.
* @author Xiangxiang
*
@create 2020
*/
public class JdbcUtil {
private static DataSource dataSource; // 將dataSource變成私有屬性
static {// 靜態代碼塊 類在加載時,就把池子建好
InputStream inputStream = JdbcUtil.class.getClassLoader().getResourceAsStream("druid.properties");
Properties properties = new Properties();
try {
properties.load(inputStream);
inputStream.close();
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
Connection connection = dataSource.getConnection(); // 連接
return connection;
}
}
測試類
package com.jdbc.util;
import java.sql.Connection;
import java.sql.SQLException;
import org.junit.Test;
/**
*
測試類 一定要配置mysql jar包
* @author Xiangxiang
*
@create 2020
*/
public class JdbcTest {
@Test
public void test() {
try {
Connection connection = JdbcUtil.getConnection(); //獲取連接
System.out.println(connection);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Note: Jdbc中使用連接池效率高效,之后的學習中會慢慢簡化操作,sql語句也很重要。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。