HBase運維篇 _ ZGC初體驗——HBase1.4.8安裝部署和測試
1、流程
-
建立一個maven專案
-
匯入依賴
-
建立Mybatis核心配置檔案
-
properties屬性
-
可以引入外部配置檔案
-
-
settings設定
-
-
設定全域性快取
-
設定延遲載入
-
-
typeAliases類型別名
-
通過指定包將包內類全部起別名
-
直接指定javabean為其起別名
-
-
plugins外掛
-
environments(環境配置)
-
可配置多套環境,用於連線不同的資料庫,SqlSessionFactory 例項只能選擇一種環境
-
environment(環境變數)
-
transactionManager(事務管理器)
-
dataSource(資料來源)
-
-
-
mappers對映器
-
繫結Mapper.xml檔案
-
-
-
建立javaBean、介面、Mapper.xml檔案
-
繫結Mapper.xml或者繫結介面
-
使用class繫結介面
-
使用resource繫結Mapper
-
2、Mapper.xml檔案
-
修改基本配置,namespace中的包名要和介面中的包名相同
-
編寫CRUD語句
1、SQL對映檔案中的頂級元素:
-
cache
– 該名稱空間的快取配置。 -
cache-ref
– 引用其它名稱空間的快取配置。 -
resultMap
– 描述如何從資料庫結果集中載入物件,是最複雜也是最強大的元素。 -
sql
– 可被其它語句引用的可重用語句塊。
2、元素中的屬性:
-
id
- 程式碼塊的名 -
parameterType
- 傳入的引數型別 -
resultType
- 語句返回結果的類名(返回型別,若是集合則返回集合包含的型別) -
resultMap
- 對外部 resultMap 的命名引用 -
flushCache
- 設定為true且被呼叫後會導致本地快取和二級快取被清空,預設false -
useCache
- 設定為true後會導致語句的結果被二級快取起來,預設true
3、resultMap的使用
對於聯表查詢可以使用結果集對映的方式獲得返回結果
-
在查詢語句塊中使用resultMap,引用外部的resultMap
-
外部resultMap 使用某一個javabean當做返回型別
-
在外部resultMap將資料庫查詢的欄位對映成javabaen的屬性中
-
複雜的javabaen屬性可以繼續使用association或collection對其進行進一步的對映
-
association符合多對一的情況
-
<resultMap id="StudentsTeacher2" type="student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<association property="teacher" javaType="teacher">
<result property="id" column="tid"/>
<result property="name" column="tname"/>
</association>
</resultMap>
-
-
collection符合一對多的情況
-
<resultMap id="teacherStudent" type="teacher">
<id property="id" column="tid"/>
<result property="name" column="tname"/>
<collection property="students" ofType="student">
<id property="id" column="sid"/>
<result property="name" column="sname"/>
<result property="tid" column="tid"/>
</collection>
</resultMap>
-
-
javaType 用來指定實體類中的屬性型別
-
ofType 用來指定對映到List或集合中的pojo型別,泛型中約束的型別
3、動態SQL
-
IF
標籤 - 用於判斷,成立則執行標籤內內容 -
where
標籤 - 用於where語句拼接的情況,可自動去掉首條件前面的and和or -
choose
標籤 - 用於多個條件滿足其一足以的情況-
when
標籤 -
otherwise
標籤
-
-
set
標籤 - 用於修改語句,可以自動去掉最後一個條件的逗號 -
trim
標籤 - 格式化的標記,可完成set或where標記的功能-
prefix:用來定義set元素或where元素的功能
-
prefixoverride:去掉子句第一個and或者or
-
suffixOverrides:去掉最後一個多餘的逗號
-
suffix:字尾,可以這樣使用suffix=" where id = #{id} "
-
-
forEach
-
collection="ids" :集合的引用
-
item="id" :遍歷得到的元素引用
-
open="(" :在前面加入元素
-
separator="," :每次遍歷後元素之間的分隔符
-
close=")" :在後面加入元素
-
4、日誌
-
匯入依賴
-
設定日誌配置檔案
-
在mybatis核心配置檔案中設定日誌
-
使用日誌
需掌握的日誌:
-
LOG4J⭐
-
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
-
-
COMMONS_LOGGING
-
STDOUT_LOGGING⭐ 標準日誌輸出
-
5、註解
簡單的CRUD可以使用註解實現,在介面的抽象類上使用
// 使用註解查詢
注意:使用註解需要在核心配置檔案中繫結介面。在複雜的功能面前註解並不適用
6、mybatis中的模糊查詢
使用mysql的函式實現:
<select id="fuzzyQuery" resultType="com.bin.pojo.Book">
select * from mybatis.book where bookName like
concat('%',#{info},'%');
</select>
7、錯誤整理:
1、找不到mapper中的map
Could not find parameter map com.bin.dao.user.UserMapper.map
到mapper配置檔案中將parameterMap改成parameterType
2、主鍵重複
Duplicate entry '17' for key 'PRIMARY'
3、未寫結果集對映
A query was run and no Result Maps were found for the Mapped Statement 'com.bin.dao.user.UserMapper.getUserCount'. It's likely that neither a Result Type nor a Result Map was specified
4、mapper註冊失敗
org.apache.ibatis.binding.BindingException: Type interface com.bin.dao.UserDao is not known to the MapperRegistry.
5、可能遇到的錯誤:
-
配置檔案沒有註冊
-
繫結介面錯誤
-
方法名不對
-
返回型別不對
-
resource繫結mapper,需要使用路徑
-
程式配置檔案必須符合規範
-
NullPointerException沒有註冊到資源
-
輸出的xml檔案中存在中文亂碼問題
-