摘要:你數據庫的默認值不起作用而是得到,那怎么解決這個問題呢通過使用和標簽我們解決了這個問題。將和均交由該處理,但本人實測,這個好像并沒有什么卵用,有用的是在文件中顯式指定,如下所示。
前言
Mybatis在我所見過的持久化框架里真心是一個異類,因為它是sql-centric的,而不是基于對象和表映射的。我會在本文中講一下Mybatis幾個重要的技巧,與本文的上一篇文章Hibernate做個對比。
Mybatis配置在ApplicationContext上加上如下配置:
XML
然后在mybatis-config.xml中做進一步的配置。
XMLMybatis 分頁
Mybatis不支持分頁,所以我采用了PageHelper這個插件,首先在你的Mybatis配置文件里加上一下配置
XML
然后在需要分頁的查詢之前,加上下面一句話:
javaPageHelper.startPage(pageNum,PAGE_SIZE);Mybatis 中的sql標簽
由于Mybatis是通過文本替換組裝生成SQL語句的,所以不難發現它的插入和更新同樣是靜態的,對象里是null的插入也是null。你數據庫的默認值不起作用而是得到null,那怎么解決這個問題呢?
XMLid, phone, email, photo, #{id}, #{phone}, #{email}, #{photo}, insert into user ( ) values ( )
通過使用include和sql標簽我們解決了這個問題。
Mybatis typeHandler有時候我們常常想將Collection或者其他對象直接以Json字符串的形式存在數據庫里而不是再開一張表,雖然普遍的觀點是不贊同這種做法,但這種需求卻是實際存在的。怎么才能在DAO中就將字符串和對象的轉換做掉而不用交給上層顯式地轉換呢?
采用自定義的Typehandler就可以,下面給出一個例子
java@MappedJdbcTypes(JdbcType.VARCHAR) public class JSONHandler implements TypeHandler
首先設定處理的JDBCType,顯然是變長字符,然后實現給定的接口,最后在Mybatis的配置文件中加上這么一句。
XML
將Map和List均交由該handler處理,但本人實測,這個好像并沒有什么卵用,有用的是在Mapper.xml文件中顯式指定,如下所示。
XMLMybatis 外鍵查詢insert (tags) values (#{tags,typeHandler=sbeat.util.helper.JSONHandler})
外鍵查詢需要使用resultMap的association標簽,如下所示
XMLMybatis 多參數
在接口定義中使用@Params注解,并在XML中不定義paramType,如下所示
javapublic ListfindByTradeId(@Param("tradeId") Long tradeId,@Param("ownerType") UserType ownerType);
XMLMybatis 逗號問題
逗號的不注意往往是使用Mybatis中出現最多的失誤,可以通過使用where和set一級trim標簽來盡量避免,如下所示:
XMLid, phone, phone=#{phone}, name=#{name}, id=#{id} AND logic_delete=#{logic_delete} AND logic_delete=false AND name=#{name}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64398.html
摘要:閱讀小札一閱讀前自大學課上,就開始接觸設計模式,但對設計模式卻鮮有研究與實踐。第二部分是核心部分,由淺到深講解個設計模式。設計模式遵循的原則所有設計模式罪訓的一條原則就是找出程序中變化的地方,并將變化封裝起來。 閱讀小札 · 閱讀前 自大學Java課上,就開始接觸設計模式,但對設計模式卻鮮有研究與實踐。最近向公司反映和游說技術提升,得以獲得公司提供購書機會,借此認真學習前端學習之路的...
摘要:本文將由淺入深為您帶來一個粗略的使用體驗。當再次調用時,將得到一個新的,并重新開始這一系列工作。與此同時,提供了一套自己的,使用注解即可,主要有,,等,兩種級聯可以同時使用。 前言 Hibernate作為Java中最為流行的O/R映射框架,同時已經完全遵照JPA規范并作為其實現的一個超集,它能夠幫助我們快速進行開發,從繁重的持久化層實現中脫離出來。本文將由淺入深為您帶來一個粗略的Hi...
摘要:入門使用簡介是支持普通查詢存儲過程和高級映射的持久層框架。一般情況下是被整合使用的,但是他也可以獨立使用。獨立使用步驟建立類。配置文件主要用于配置程序中可變性高的設置,中的配置文件主要封裝在中。針對,注冊類型的,以及用于映射接口的。 MyBatis入門使用 MyBatis簡介 MyBatis是支持普通SQL查詢、存儲過程和高級映射的持久層框架。MyBatis消除了幾乎所有的JDBC代碼...
摘要:入門介紹簡介是支持普通查詢存儲過程和高級映射的持久層框架。獨立使用步驟建立類。配置文件主要用于配置程序中可變性高的設置,中的配置文件主要封裝在中。對應于全局配置中的的配置屬性。進行測試代碼實例建立類。針對,注冊類型的,以及用于映射接口的。 MyBatis入門介紹 MyBatis簡介 MyBatis是支持普通SQL查詢、存儲過程和高級映射的持久層框架。MyBatis消除了幾乎所有的JDB...
摘要:是最流行的關系型數據庫管理系統之一,在應用方面,是最好的,關系數據庫管理系統應用軟件。是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。 本章主要是對MyBatis-Plus的初步介紹,包括一些背景知識、環境搭建、初步使用等知識和例子。對于背景知識,主要包含對MyBatis-Plus的特性介紹、為什么使用MyB...
閱讀 2929·2021-10-14 09:43
閱讀 2867·2021-10-14 09:42
閱讀 4640·2021-09-22 15:56
閱讀 2356·2019-08-30 10:49
閱讀 1587·2019-08-26 13:34
閱讀 2370·2019-08-26 10:35
閱讀 591·2019-08-23 17:57
閱讀 2023·2019-08-23 17:15