您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Mybatis實體類對象入?yún)⒉樵兊姆椒ā钡挠嘘P(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
/** 使用lobmok插件 */ @Getter @Setter @NoArgsConstructor @ToString @EqualsAndHashCode public class Vendor { private String vend_id; private String vend_name; private String vend_address; private String vend_city; private String vend_state; private String vend_zip; private String vend_country; }
XML映射文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis.mapper.VendorMapper"> <select id="findByVendorEntity" parameterType="vendor" resultType="vendor"> select * from Vendors where vend_id = #{vend_id} and vend_name = #{vend_name} </select> </mapper>
接口文件
public interface VendorMapper { //通過Vendor對象查詢 Vendors findByVendorEntity(Vendor vendor); }
try { String resource = "mybatis-config.xml"; InputStream resourceAsStream = Resources.getResourceAsStream(resource); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream,"development2"); //獲取SQLSession SqlSession openSession = build.openSession(); VendorMapper mapper = openSession.getMapper(VendorMapper.class); Vendor vendor = new Vendor(); vendor.setId("BRE02"); vendor.setName("Bear Emporium"); Vendor findByVendorEntity = mapper.findByVendorEntity(vendor); System.out.println(findByVendorEntity); } catch (IOException e) { System.out.println("加載配置文件失敗"); e.printStackTrace(); }
筆記:
當對象作為參數(shù)傳入查詢時(不一定指定parameterType屬性值為實體對象的別名或全路徑名,typeHandler貌似會自動識別),SQL查詢語句的#{}中內(nèi)容需要與實體類的字段屬性一一對應(yīng)(并非實體類的屬性一定是數(shù)據(jù)庫表中的字段,只要填入的值對應(yīng)即可。
mybatis查詢條件是看sql語句的where后的查詢條件),如果表達式中的值沒有對應(yīng),則會報錯。
錯誤示例如下:
....Cause:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'ids' in 'class com.mybatis.beans.Vendors' ....Cause:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'ids' in 'class com.mybatis.beans.Vendors'...
該參數(shù)表示的是輸入類型
1、傳遞簡單類型
像int、string這種屬于簡單類型
2、傳遞pojo對象
pojo對象就是我們所說的JavaBean,mybatis使用ognl表達式解析對象字段的值,#{}或者${}括號中的值為pojo屬性名稱
什么是ognl表達式?
mysql在windows系統(tǒng)下不區(qū)分列名的大小寫,linux中嚴格區(qū)分大小寫
如果哪一行sql語句想使用resutMap中的對應(yīng)關(guān)系就需要設(shè)置resultMap屬性和resuletMap標簽中的id屬性相同
resultMap中的type屬性表示的是封裝的實體類
id標簽和property標簽中的property表示的是封裝的實體類中的屬性
id標簽和property標簽中的column屬性表示的是映射的關(guān)系,也就是數(shù)據(jù)庫表中的列名
“Mybatis實體類對象入?yún)⒉樵兊姆椒ā钡膬?nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。