本知識點演示單純的Mybatis整合C3P0數據庫鏈接池,不是SSM的那種整合方式html
步驟1:先運行,看到效果,再學習
步驟2:模仿和排錯
步驟3:下載JAR包
步驟4:導入項目
步驟5:新建類C3P0DataSourceFactory
步驟6:配置 mybatis-config.xml
步驟7:測試 java
步驟 1 : 先運行,看到效果,再學習sql
老規矩,先下載下載區(點擊進入)的可運行項目,配置運行起來,確承認用以後,再學習作了哪些步驟以達到這樣的效果。數據庫
步驟 2 : 模仿和排錯apache
在確保可運行項目可以正確無誤地運行以後,再嚴格照着教程的步驟,對代碼模仿一遍。
模仿過程不免代碼有出入,致使沒法獲得指望的運行結果,此時此刻經過比較正確答案 ( 可運行項目 ) 和本身的代碼,來定位問題所在。
採用這種方式,學習有效果,排錯有效率,能夠較爲明顯地提高學習速度,跨過學習路上的各個檻。 session
推薦使用diffmerge軟件,進行文件夾比較。把你本身作的項目文件夾,和個人可運行項目文件夾進行比較。
這個軟件很牛逼的,能夠知道文件夾裏哪兩個文件不對,而且很明顯地標記出來
這裏提供了綠色安裝和使用教程:diffmerge 下載和使用教程mybatis
步驟 3 : 下載JAR包併發
下載區(點擊進入)下載c3p0的jar包高併發
步驟 4 : 導入項目學習
把jar包導入到項目中,導包辦法:右鍵 project->properties->java build path->libaries->add external jars
步驟 5 : 新建類C3P0DataSourceFactory
Mybatis使用C3P0有點怪怪的,須要本身寫個類繼承UnpooledDataSourceFactory,而後指定dataSource 爲ComboPooledDataSource。
這個ComboPooledDataSource就是c3p0的數據源。
package org.mybatis.c3p0; import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0DataSourceFactory extends UnpooledDataSourceFactory{ public C3P0DataSourceFactory(){ this.dataSource =new ComboPooledDataSource(); } }
步驟 6 : 配置 mybatis-config.xml
註釋掉type="POOLED"的數據源,換成type="org.mybatis.c3p0.C3P0DataSourceFactory"的數據源
這樣就使用c3p0了。
由於代碼插件的bug,有一些關鍵字符不能正常顯示,請直接使用下載區(點擊進入)的mybatis-config.xml,保證順利運行。
步驟 7 : 測試
隨便運行前面知識點的任意測試類便可。
做爲數據庫鏈接池,沒法在小規模訪問裏看到其效果,須要高併發才能體現出其效果,這裏的測試代碼只能表示正常運行,沒法體現其優越性。
package com.how2java; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.how2java.pojo.Category; public class TestMybatis { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); List<Category> cs =session.selectList("listCategory"); for (Category c : cs) { System.out.println(c.getName()); } session.close(); } }
更多內容,點擊瞭解: https://how2j.cn/k/mybatis/mybatis-annotation-c3p0-connection-pool/1103.html