Mybatis連線池_動態sql語句_多表查詢實現
Mybatis連線池_動態sql語句_多表查詢實現
Mybatis連線池
Mybatis中的連線池
Mybatis連線池提供了3種方式的配置:
配置的位置:
主配置檔案SqlMapConfig.xml中的dataSource標籤,type屬性就是表示採用何種連線池方式。
type屬性的取值:
POOLED:採用傳統的javax.sql.DataSource規範中的連線池,Mybatis中有針對規範的實現
UNPOOLED:採用傳統的獲取連線的方式,雖然也實現了Javax.sql.DataSource介面,但是並沒有使用連線池的思想
JNDI(課外瞭解):採用伺服器提供的JNDI技術實現,來獲取DataSource物件,不同的伺服器所能拿到的DataSource是不 一樣的。 注意:如果不是web或者maven的war工廠,是不能使用的
我們課程使用的tomcat伺服器,採用的連線池是dbcp連線池
Mybatis中沒有使用C3P0或者Druied連線池技術,而是自己實現了一套Mybatis專用的連線池,
只需要在Datasource中根據自己的需要配置相應的type屬性即可,一般情況下使用POOLED屬性。
1.4 Mybatis中動態sql語句
if標籤
<!-- 例如條件查詢語句
在新增條件之前先判斷傳入的引數是否存在,存在則新增條件
test屬性:
填寫if的條件
-->
select * from user where 1=1
<if test="userName != null">
and username=#{userName}
</if>
where標籤
<!-- 如果條件太多,此時可使用where標籤
<where/>可以自動處理第一個and
使sql語句更清晰、簡潔
-->
foreach標籤
<!-- sql語句:select欄位from user where id in(?)
<foreach>標籤用於遍歷集合,它的屬性:
collection:代表要遍歷的集合元素,注意編寫時不要寫#{}
open:代表語句的開始部分
close:代表結束部分
item:代表遍歷集合的每個元素,生成的變數名
sperator:代表分隔符
-->
抽取重複的sql語句
<!-- 在配置檔案中配置該語句
語句中的分號可以忽略
-->
<sql id="defaultUser">
select * from user
</sql>
<!-- 具體使用方法 -->
在select或者其他增刪改標籤中使用<include>標籤引入
<include refid="defaultUser"></include>
1.5 Mybatis中的多表查詢
概念引入
我們之前學過的表之間的關係:
一對多
多對一
一對一
多對多
這裡不多贅述,我們聚焦在一對多關係中,
例如:單個使用者與訂單
這是一個典型的一對多關係,一個使用者明顯可以擁有多個訂單,當
我們取出訂單中每個資料項與使用者形成對應關係時,這個時候每個
訂單項與使用者是一對一的關係。
綜上所屬,Mybatis處理多對一或者一對多的時候應用了上述方法
一對一查詢(多對一)
多表查詢涉及的知識點比較多,這裡舉例進行說明
這裡講解一下小標題:
通過上面需求可知,我們的一對一其實是表的資料項的一對一關係,
而多對一指的是表之間的關係
通過Mybatis,我們有倆個辦法進行該多對一的多表查詢操作
方式一
通過定義實體類AccountUser的方式儲存查詢結果
定義賬戶資訊的實體類
編寫sql語句
定義AccountUser類
定義持久層dao介面
定義AccountDao.xml
小結
方式二
修改Account類
修改AccountDao介面中的方法
重新定義AccountDao.xml檔案
一對多查詢
使用者持久層Dao介面中加入查詢方法
使用者持久層Dao對映配置檔案
多對多查詢
業務要求以及實現sql
業務要求以及實現sql
編寫Role持久層介面
編寫對映檔案
反過來,我們根據上面的步驟也可以實現User到Role的多對多關係
相關文章
- Mybatis 裡對映檔案的動態 SQL 語句,實現if,where,foreache的SQL語句動態拼接查詢MyBatisSQL
- MyBatis標籤實現的動態SQL語句MyBatisSQL
- 多表查詢建表語句
- mysql查詢語句5:連線查詢MySql
- Mybatis 動態執行SQL語句MyBatisSQL
- MySQL內連線查詢語句MySql
- 【學習】SQL基礎-006-多表連線查詢SQL
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- SQL查詢語句 (Oracle)SQLOracle
- SQL語言基礎(多表連線)SQL
- jpa動態查詢與多表聯合查詢
- SQL連線查詢SQL
- SpringDataJpa (二)-動態查詢&多表操作Spring
- 一句SQL完成動態分級查詢SQL
- SQL查詢的:子查詢和多表查詢SQL
- Spring Data Jpa 的簡單查詢多表查詢HQL,SQL ,動態查詢, QueryDsl ,自定義查詢筆記SpringSQL筆記
- 記一個實用的sql查詢語句SQL
- postgresql dba常用sql查詢語句SQL
- mysql多表查詢如何實現MySql
- java-Mybatis 註解方式實現sql語句JavaMyBatisSQL
- 好程式設計師分享MyBatis之動態SQL語句程式設計師MyBatisSQL
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- Mybatis 查詢語句結果集總結MyBatis
- Swoole 實戰:MySQL 查詢器的實現(協程連線池版)MySql
- mysql查詢效率慢的SQL語句MySql
- SQL單表查詢語句總結SQL
- SQL Server 語句日期格式查詢方法SQLServer
- SQL Server-簡單查詢語句SQLServer
- sql 連線查詢例項(left join)三表連線查詢SQL
- Hibernate【查詢、連線池、逆向工程】
- SQL Server 查詢歷史執行的SQL語句SQLServer
- mybatis多表聯合查詢的寫法MyBatis
- 在mysql查詢效率慢的SQL語句MySql
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- SQL基礎的查詢語句烈鉍SQL
- mybatis-plus連線SQL Server2012分頁查詢異常MyBatisSQLServer
- SQL Sever 實現查詢超過自己經理工資的員工(自連線查詢)SQL