當前位置:首頁 » 數據倉庫 » mybatis資料庫連接池
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mybatis資料庫連接池

發布時間: 2023-03-07 06:35:15

Ⅰ spring-mybatis 怎麼配置

數據訪問層的控制,applicationContext-.xml的配置:

配置載入數據連接資源文件的配置,把資料庫連接數據抽取到一個properties資源文件中方便管理。

配置為:
<!-- 載入資料庫連接的資源文件 -->
<context:property-placeholder location="/WEB-INF/classes/jdbc.properties"/>
其中jdbc.properties文件的內容如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database
jdbc.username=root
jdbc.password=1234
配置資料庫連接池,這里使用的是dbcp,別忘了添加jar包!

<!-- 配置數據源 dbcp資料庫連接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>

Ⅱ SpringBoot整合MyBatisPlus配置動態數據源

MybatisPlus特性

快速開始

初始化測試數據表:

父工程依賴

該工程用於依賴管理,pom如下:

創建MyBaitsPlus工程

依賴如下:

properties配置

在這里配置資料庫連接,以及數據連接池與mybatisplus的配置等

常規增刪改查實現

創建實體類:

該lombok插件省去getset方法。

創建UserMapper介面,並且實現BaseMapper<User>這里我們指定實體類為user可直接使用介面中的方法。

UserMapper.xml,如下:

執行SQL:

在SpringBoot中使用MybatisPlus分頁需要注入Bean,並且在啟動類上使用@MapperScan("com.simple.spring.boot.mapper")掃描mapper文件路徑如下:

使用MyBatisPlus可以為我們減少很多很多的代碼,不過需要編寫實體類,有失必有得。

配置動態數據源

dynamic-datasource-spring-boot-starter 是一個基於springboot的快速集成多數據源的啟動器。

優勢

網上關於動態數據源的切換的文檔有很多,核心只有兩種。

如果你的數據源較少,場景不復雜,選擇以上任意一種都可以。如果你需要更多特性,請嘗試本動態數據源。

劣勢

不能使用多數據源事務(同一個數據源下能使用事務),網上其他方案也都不能提供。

如果你需要使用到分布式事務,那麼你的架構應該到了微服務化的時候了。

如果呼聲強烈,項目達到800 star,作者考慮集成分布式事務。

PS: 如果您只是幾個資料庫但是有強烈的需求分布式事務,建議還是使用傳統方式自己構建多套環境集成atomic這類,網上網路很多。

約定

建議

強烈建議在 主從模式 下遵循普遍的規則,以便他人能更輕易理解你的代碼。

主資料庫 建議 只執行 INSERT UPDATE DELETE 操作。

從資料庫 建議 只執行 SELECT 操作。

快速開始

加入依賴:

注釋掉原來的資料庫配置,加入:

使用 @DS 切換數據源。

@DS 可以註解在方法上和類上, 同時存在方法註解優先於類上註解

註解在service實現或mapper介面方法上,但強烈不建議同時在service和mapper註解。 (可能會有問題)

如果不加入主鍵則使用默認數據源。

DruidDataSourceAutoConfigure會注入一個DataSourceWrapper,其會在原生的spring.datasource下找url,username,password等。而我們動態數據源的配置路徑是變化的,所以需要排除:

或者在類上排除:

然後更換properties配置信息:

本篇代碼案例地址:

https://github.com/450255266/open-doubi

作者:SimpleWu

出處:https://www.cnblogs.com/SimpleWu/p/10930388.html

Ⅲ spring整合mybatis查詢資料庫時卡死什麼原因

sql鎖死了吧。看看有沒有鎖sql語句了,再看看關聯欄位是不是採用相同的格式,如果不是,就會出現sql執行越來越慢,最後直接導致查詢堵塞的情況

Ⅳ MyBatis如何連接資料庫

通過配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<!-- 開啟註解掃描 -->
<context:component-scan base-package="com.ijava.springmvc."/>
<!-- 載入配置文件 --> <!-- placeholder 佔位符 -->
<context:property-placeholder location="classpath:resources/db.properties"/>

<!-- 資料庫連接池 -->
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

<!-- 創建對象 -->
<bean id="userDao" class="com.ijava.springmvc..UserDaoImpl"></bean>
<bean id="userService" class="com.ijava.springmvc.service.UserServiceImpl"></bean>
<bean class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="datasource"></property>
</bean>
</beans>

Ⅳ Mybatis是什麼以及Mybatis和JDBC的關系

Mybatis是什麼

mybatis是一個持久層ORM框架。它內部封裝了jdbc,使得開發更簡潔,更高效。

MyBatis可以通過xml或註解完成ORM映射關系配置。

Mybatis和JDBC的關系

JDBC是Java提供的一個操作資料庫的API; MyBatis是一個持久層ORM框架,底層是對JDBC的封裝。

MyBatis對JDBC操作資料庫做了一系列的優化:

(1) mybatis使用已有的連接池管理,避免浪費資源,提高程序可靠性。

(2) mybatis提供插件自動生成DAO層代碼,提高編碼效率和准確性。

(3)mybatis 提供了一級和二級緩存,提高了程序性能。

(4) mybatis使用動態SQL語句,提高了SQL維護。(此優勢是基於XML配置)

(5) mybatis對資料庫操作結果進行自動映射

MyBatis的優點和缺點

優點:

簡單:易於學習,易於使用,通過文檔和源代碼,可以比較完全的掌握它的設計思路和實現。

實用:提供了數據映射功能,提供了對底層數據訪問的封裝(例如ado.net),提供了DAO框架,可以使我們更容易的開發和配置我們的DAL層。

靈活:通過sql基本上可以實現我們不使用數據訪問框架可以實現的所有功能,或許更多。

功能完整:提供了連接管理,緩存支持,線程支持,(分布式)事物管理,通過配置作關系對象映射等數據訪問層需要解決的問題。提供了DAO支持,並在DAO框架中封裝了ADO.NET,NHibernate和DataMapper。

增強系統的可維護性:通過提供DAO層,將業務邏輯和數據訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。sql和代碼的分離,提高了可維護性。

缺點:

sql工作量很大,尤其是欄位多、關聯表多時,更是如此。

sql依賴於資料庫,導致資料庫移植性差。

由於xml里標簽id必須唯一,導致DAO中方法不支持方法重載。

欄位映射標簽和對象關系映射標簽僅僅是對映射關系的描述,具體實現仍然依賴於sql。(比如配置了一對多Collection標簽,如果sql里沒有join子表或查詢子表的話,查詢後返回的對象是不具備對象關系的,即Collection的對象為null)。

DAO層過於簡單,對象組裝的工作量較大。

不支持級聯更新、級聯刪除。

編寫動態sql時,不方便調試,尤其邏輯復雜時。

提供的寫動態sql的xml標簽功能簡單(連struts都比不上),編寫動態sql仍然受限,且可讀性低。使用不當,容易導致N+1的sql性能問題。

Ⅵ MyBatis 怎樣使用JNDI連接資料庫

JNDI是J2EE中一個很重要的標准,通常我們是在J2EE編程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通過dbcp連接池
重點講使用:
1.配置context.xml
注意地址是:tomcat安裝目錄下的conf,該目錄下應該有了context.xml文件。貌似以前的版本是在項目目錄中的META-INF目錄下配置,我剛開始時參考是也是老版本的操作方法,誰知道試了一晚都不行。。。如果不是那裡配置的話會可能出現這樣的錯誤提示:javax.naming.NameNotFoundException: Name jdbc is not bound in this Context?
現在開始配置:
<Context path="/Manager" reloadable="true">
<Resource
name="hello"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
username="root"
password="123456"
maxIdle="4"
maxActive="4"