eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池
mysql8.0在eclipse中通過xml文件配置數據庫連接池
1、關于Mysql8.0
2、數據庫連接池(DBCP)
3、準備工作
4、配置context.xml
5、配置web.xml
6、調用連接池
有關MySQL數據庫8.0.xx版本下載及安裝配置的問題可以參考 https://blog.csdn.net/MaYuKang/article/details/86744332
1、關于Mysql8.0
使用mysql6.0以上版本配置的JDBC驅動,會出現兩個變化:
1.以前的驅動位置調整為 com.mysql.cj.jdbc.Driver
2.URL地址新增serverTimezone和useSSL屬性, 需要指定服務器時區,設定mysql版本是否向下兼容,各屬性之間用&連接,時區使用GMT%2B8或者Asia/Shanghai
2、數據庫連接池(DBCP)
DBCP(DataBase connection pool)數據庫連接池。由于建立數據庫連接是一種非常耗時、耗資源的行為,所以通過連接池預先同數據庫建立一些連接,放在內存中,應用程序需要建立數據庫連接時直接到連接池中申請一個就行,使用完畢后再歸還到連接池中。
傳統JDBC操作需要在數據庫連接類中完成以下代碼:
import java.sql.*;
public class DatabaseConnection {
public static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; //驅動地址
public static final String DB_URL = "jdbc:mysql://localhost:3306?serverTimezone=Asia/Shanghai&useSSL=false";
//數據庫連接地址,連接SSL,時區
public static final String DB_USERNAME = "root"; //用戶名
public static final String DB_PASSWORD = "root";//密碼
private Connection conn = null;
public DatabaseConnection() throws Exception {//建立連接
Class.forName(DB_DRIVER) ;
this.conn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD) ;
}
public Connection getConnection(){
return this.conn ;
}
public void close() throws Exception{//數據庫關閉
if(this.conn != null){
try{
this.conn.close() ;
}catch(Exception e){
throw e ;
}
}
}
}
可見每次都去建立數據庫連接是非常占用資源和浪費時間的,也會影響一個應用程序的延展性。這時數據庫連接池就可以解決這些問題,因為數據庫連接池具備更快的系統反應速度、新的分配方式、資源重用、統一的連接管理,避免數據庫連接泄漏等優點。
3、準備工作
CLASSPATH中添加 mysql-connector-java-8.0.xx.jar 包的位置
將 mysql-connector-java-8.0.xx.jar 復制到tomcat\lib文件夾下
對Eclipse創建的項目構建路徑,引入 mysql-connector-java-8.0.xx.jar 包
4、配置context.xml
用Eclipse生成web項目,在WebContent\META-INF目錄下創建context.xml
在< Context >標簽下添加< Resource >標簽,文件內容如下:
name="jdbc/datasource"
auth="Container"
type="javax.sql.DataSource"
maxTotal="100"
maxWaitMillis="10000"
maxIdle="30"
username="root"
password="root"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/MVCdemo?serverTimezone=Asia/Shanghai&useSSL=false"/>
Context>
name:連接池名稱,命名規則一般為jdbc/連接數據庫名
auth:設定控制權為容器(container),固定
type:數據類型,固定
maxTotal:最大活動連接數,注意舊版本中是maxActive
maxWaitMillis:最大空閑時間,注意舊版本中是maxWait
maxIdle:最大空閑連接數
userName:用戶名
password:密碼
dirverClassName:驅動地址
url:注意在xml/html文件中&需要用& ; 轉義表示,否則會報錯
5、配置web.xml
在項目的web.xml中配置,在WebContent\WEB-INF\lib文件夾下打開web.xml(如沒有則手動創建)
在web.xml中< web-app >標簽內添加如下代碼:
......
jdbc/datasourceres-ref-name>
javax.sql.DataSourceres-type>
Containerres-auth>
resource-ref>
web-app>
指定資源名,資源類型,資源控制權限,需和context.xml配置的內容一致。
6、調用連接池
之前的配置代碼可以省去,導入javax.sql包和javax.naming包,通過JNDI(java naming and directory interface)在java類或jsp頁面調用連接池中的連接,代碼如下:
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class DatabaseConnection {
/*
* public static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; //驅動地址
* public static final String DB_URL = "jdbc:mysql://localhost:3306?useSSL=false&serverTimezone=Asia/Shanghai";
* //數據庫連接地址,連接SSL,時區
* public static final String DB_USERNAME = "root";
* public static final String DB_PASSWORD = "1999c719";
*/
private static final String DSNAME = "java:comp/env/jdbc/datasource"; //加上java:comp/env/前綴,指定環境
private Connection conn = null;
public DatabaseConnection() throws Exception {//建立連接
Context ctx = new InitialContext() ;
DataSource ds = (DataSource) ctx.lookup(DSNAME) ;
this.conn = ds.getConnection() ;
}
public Connection getConnection(){
return this.conn ;
}
public void close() throws Exception{//數據庫關閉
if(this.conn != null){
try{
this.conn.close() ;
}catch(Exception e){
throw e ;
}
}
}
~}
注意:在對資源屬性操作的時候需要當前J2EE應用環境的支持,使用tomcat需要在連接名稱前加上 java:comp/env/,否則會報錯。
至此,mysql數據庫連接池配置完成,當然還有其他方法,比如通過配置properties屬性文件的方式等等。
覺得有用就點個贊唄~
總結
以上是生活随笔為你收集整理的eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学mysql逻辑思维跟不上_关于避免My
- 下一篇: mysql双主数据一致性_mysql双主