1. 程式人生 > >Spring系列 之資料來源的配置 資料庫 資料來源 連線池的區別

Spring系列 之資料來源的配置 資料庫 資料來源 連線池的區別

## Spring系列之資料來源的配置 ## 資料來源,連線池,資料庫三者的區別 **連線池**:這個應該都學習過,比如c3p0,druid等等,連線池的作用是為了提高程式的效率,因為頻繁的去建立,關閉資料庫連線,會對效能有很大的消耗,所以就有了連線池,連線池顧名思義是儲存多個連線的池子,池子中的連線都是建立好的,我們只要拿來使用即可,不用的時候就歸還給連線池,這就大大減少了關閉建立連線的時間,提高了效率 **資料庫**:儲存資料的地方 **資料來源**:資料來源顧名思義是資料的來源,儲存了連線資料庫所需要的資訊,也可以說是用於管理資料庫連線池,並不儲存真正的資料,僅僅記錄了連線哪個資料庫,怎麼連線。如果把資料庫比作一個檔案的話,那麼資料來源儲存的就是檔案的名稱,可以通過檔名稱來找到對應的檔案,算是一個抽象的對映,一個數據庫對應一個數據源,資料來源可能是一個連線,也可能是一個連線池 **如果你是玫瑰,他就是牛糞** ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200920104634932.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BqaDg4,size_16,color_FFFFFF,t_70#pic_center) **呸呸呸,說錯了** **如果資料是水,資料庫就是水庫,資料來源就是管道,終端使用者看到的資料集是管道里流出來的水。** ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200920104703838.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BqaDg4,size_16,color_FFFFFF,t_70#pic_center) **Spring功能這麼強大,怎麼可能少的了資料來源呢** ## Spring配置資料來源 **配置步驟**: 1.匯入資料來源的座標與資料庫驅動座標 2.建立資料來源物件 3.設定資料來源的基本連線資訊 4.使用資料來源獲取連線或歸還連線 **需要匯入的座標資訊** **junit** ```java junit junit 4.13 test ``` **druid** ```java com.alibaba druid 1.0.9 ``` **c3p0** ```java c3p0 c3p0 0.9.1.2 ``` **spring—context** ```java org.springframework spring-context 5.0.3.RELEASE ``` **mysql** ```java mysql
mysql-connector-java 5.1.32
``` **我先手動配置一波,等一下再用Spring容器經行配置,大家就能看到二者的巨大差別了** **手動配置資料來源** **druid** ```java public void main() throws Exception{ //建立資料來源 DruidDataSource druidDataSource = new DruidDataSource(); //設定連線引數 druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource.setUrl("jdbc:mysql://localhost:3309/one"); druidDataSource.setUsername("root"); druidDataSource.setPassword("1234"); //獲取連線物件 DruidPooledConnection connection = druidDataSource.getConnection(); System.out.println(connection); } ``` **c3p0** ```java public void test2() throws Exception{ //建立資料來源 ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); //設定連線引數 comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver"); comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3309/one"); comboPooledDataSource.setUser("root"); comboPooledDataSource.setPassword("1234"); //獲取連線物件 comboPooledDataSource.getConnection(); System.out.println(comboPooledDataSource); } ``` **為了降低耦合性之前我們是通過讀取配置檔案的方法,這裡我給大家重新複習一下** **首先抽取要配置的資訊到配置檔案** 右端的字串注意不要加雙引號,否則會報錯,因為他預設就是字串 ```java jdbc.Driver=com.mysql.jdbc.Driver jdbc.Url=jdbc:mysql://localhost:3309/one jdbc.Username=root jdbc.Password=1234 ``` **再讀取配置檔案來建立連線池** ```java public void test3() throws Exception{ //載入路徑下的properties ResourceBundle bundle = ResourceBundle.getBundle("jdbc"); //建立資料來源 ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); //設定連線引數 comboPooledDataSource.setDriverClass(bundle.getString("jdbc.Driver")); comboPooledDataSource.setJdbcUrl(bundle.getString("jdbc.Url")); comboPooledDataSource.setUser(bundle.getString("jdbc.Username")); comboPooledDataSource.setPassword(bundle.getString("jdbc.Password")); //獲取連線物件 comboPooledDataSource.getConnection(); System.out.println(comboPooledDataSource); } ``` 這樣的方式很好的降低了耦合性 **重點來了,下面我們來講講如何使用Spring來配置資料來源** ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200920130918127.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BqaDg4,size_16,color_FFFFFF,t_70#pic_center) ## Spring配置資料來源 將DataSource的建立權交給Spring容器去完成 DataSource有無參構造方法,Spring預設就是通過無參構造方法例項化物件 DataSource要想使用需要通過set方法設定資料庫連線資訊,Spring可以通過set方法進行注入 **在Spring容器中配置Bean** ```java
``` **到容器中獲取資源** ```java public void two() throws SQLException { ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationcontext.xml"); DataSource datasource = (DataSource)classPathXmlApplicationContext.getBean("datasource"); Connection connection = datasource.getConnection(); System.out.println(connection); } ``` **上面的方法是不是還不夠方便,我們可以用更方便的,即讀取配置檔案的方法** **我們首先引入名稱空間與約束路徑** ```java 名稱空間:xmlns:context="http://www.springframework.org/schema/context" 約束路徑:http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ``` **容器載入配置檔案**
**配置Bean** ```java ``` **以上就是Spring配置源的一些知識,有志同道合的夥伴可以關注我或者私信我加好友一同學習章,