欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis實(shí)體類對(duì)象入?yún)⒉樵兊墓P記

 更新時(shí)間:2022年06月22日 08:45:51   作者:走路的貓頭鷹  
這篇文章主要介紹了Mybatis實(shí)體類對(duì)象入?yún)⒉樵兊墓P記,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis實(shí)體類對(duì)象入?yún)⒉樵?/h2>

測(cè)試實(shí)體類對(duì)象結(jié)構(gòu)如下

/**
使用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對(duì)象查詢
?? ?Vendors findByVendorEntity(Vendor vendor);
}

測(cè)試文件內(nèi)容

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();
?? ??? ?}

筆記:

當(dāng)對(duì)象作為參數(shù)傳入查詢時(shí)(不一定指定parameterType屬性值為實(shí)體對(duì)象的別名或全路徑名,typeHandler貌似會(huì)自動(dòng)識(shí)別),SQL查詢語句的#{}中內(nèi)容需要與實(shí)體類的字段屬性一一對(duì)應(yīng)(并非實(shí)體類的屬性一定是數(shù)據(jù)庫(kù)表中的字段,只要填入的值對(duì)應(yīng)即可。

mybatis查詢條件是看sql語句的where后的查詢條件),如果表達(dá)式中的值沒有對(duì)應(yīng),則會(huì)報(bào)錯(cuò)。

錯(cuò)誤示例如下:

....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'...

Mybatis中的參數(shù)深入

一、mybatis的參數(shù)

parameterType參數(shù)

該參數(shù)表示的是輸入類型

1、傳遞簡(jiǎn)單類型

像int、string這種屬于簡(jiǎn)單類型

2、傳遞pojo對(duì)象

pojo對(duì)象就是我們所說的JavaBean,mybatis使用ognl表達(dá)式解析對(duì)象字段的值,#{}或者${}括號(hào)中的值為pojo屬性名稱

什么是ognl表達(dá)式?

3、傳遞pojo包裝對(duì)象

開發(fā)中通過實(shí)體類的包裝對(duì)象(pojo包裝對(duì)象)傳遞查詢條件,查詢條件是總和的查詢條件,不僅寶庫(kù)偶用戶的查詢條件,還包括其它的查詢條件,這時(shí)候使用包裝對(duì)象傳遞輸入?yún)?shù)

舉例說明,我們的QueryVo類中可以有多個(gè)對(duì)象,這里我們只存放一個(gè)user類

因?yàn)橥ㄟ^ognl表達(dá)式可以使用屬性名打點(diǎn)調(diào)用的方式來將user中的username當(dāng)作參數(shù),同時(shí)也可以將別的類的屬性當(dāng)作參數(shù)傳遞進(jìn)來

二、mybatis的輸出結(jié)果的封裝

resultType(輸出類型)

mysql在windows系統(tǒng)下不區(qū)分列名的大小寫,linux中嚴(yán)格區(qū)分大小寫

當(dāng)我們的實(shí)體類封裝的時(shí)候,如果屬性名和數(shù)據(jù)庫(kù)中的列名,我們?cè)谑褂胢ybatis查詢的時(shí)候是查詢不到的,那么我們?nèi)绾谓鉀Q這樣的問題

我們只需要使封裝的屬性和表中的列名對(duì)應(yīng)上就可以,

第一種解決方式:

查詢數(shù)據(jù)庫(kù)的時(shí)候起別名的方式

第二種解決方式,使用mybatis配置:

解釋說明標(biāo)簽中的屬性

  • 如果哪一行sql語句想使用resutMap中的對(duì)應(yīng)關(guān)系就需要設(shè)置resultMap屬性和resuletMap標(biāo)簽中的id屬性相同
  • resultMap中的type屬性表示的是封裝的實(shí)體類
  • id標(biāo)簽和property標(biāo)簽中的property表示的是封裝的實(shí)體類中的屬性
  • id標(biāo)簽和property標(biāo)簽中的column屬性表示的是映射的關(guān)系,也就是數(shù)據(jù)庫(kù)表中的列名

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java注解詳解及實(shí)現(xiàn)自定義注解的方法

    Java注解詳解及實(shí)現(xiàn)自定義注解的方法

    這篇文章主要介紹了Java注解詳解及實(shí)現(xiàn)自定義注解的方法,本文給大家介紹了jdk中預(yù)定義的一些注解及自定義注解的相關(guān)知識(shí),需要的朋友可以參考下
    2022-06-06
  • Java編程計(jì)算兔子生兔子的問題

    Java編程計(jì)算兔子生兔子的問題

    古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第四個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少
    2017-02-02
  • Spring?Boot各類變量的使用小結(jié)

    Spring?Boot各類變量的使用小結(jié)

    這篇文章主要介紹了Spring?Boot各類變量的使用小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • java string的一些細(xì)節(jié)剖析

    java string的一些細(xì)節(jié)剖析

    首先說明這里指的是Java中String的一些細(xì)節(jié)部分,需要的朋友可以參考
    2012-11-11
  • Java實(shí)戰(zhàn)角色權(quán)限后臺(tái)腳手架系統(tǒng)的實(shí)現(xiàn)流程

    Java實(shí)戰(zhàn)角色權(quán)限后臺(tái)腳手架系統(tǒng)的實(shí)現(xiàn)流程

    只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+Maven+myBaits-Plus+Vue+Element-UI+Mysql實(shí)現(xiàn)一個(gè)角色權(quán)限后臺(tái)腳手架系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2022-01-01
  • java多種幻燈片切換特效(經(jīng)典)

    java多種幻燈片切換特效(經(jīng)典)

    功能說明: 代碼實(shí)現(xiàn)了多種幻燈片變換特效. 如:淡入淡出、緩慢覆蓋、旋轉(zhuǎn)覆蓋等10多種變換效果。
    2013-03-03
  • java中壓縮文件并下載的實(shí)例詳解

    java中壓縮文件并下載的實(shí)例詳解

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java中壓縮文件并下載的實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • Nacos配置中心設(shè)計(jì)原理分析

    Nacos配置中心設(shè)計(jì)原理分析

    今天分享一下Nacos配置變更的相關(guān)知識(shí)點(diǎn),現(xiàn)在使用Java生態(tài)如果使用微服務(wù),如果部署在K8s上,那么可能會(huì)使用ConfigMap來存儲(chǔ)配置文件,如果沒有使用K8s,那么基本上都使用Nacos來做配置中心,所以有必要了解一下Nacos的配置的知識(shí)點(diǎn),本文只是對(duì)其中的部分實(shí)現(xiàn)原理進(jìn)行分析
    2023-10-10
  • IDEA使用GsonFormat完成JSON和JavaBean之間的轉(zhuǎn)換

    IDEA使用GsonFormat完成JSON和JavaBean之間的轉(zhuǎn)換

    這篇文章主要介紹了IDEA使用GsonFormat完成JSON和JavaBean之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 圖解Java經(jīng)典算法希爾排序的原理與實(shí)現(xiàn)

    圖解Java經(jīng)典算法希爾排序的原理與實(shí)現(xiàn)

    希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,它是簡(jiǎn)單插入排序經(jīng)過改進(jìn)之后的一個(gè)更高效的版本,也稱為縮小增量排序,同時(shí)該算法是沖破O(n2)的第一批算法之一。本文會(huì)以圖解的方式詳細(xì)介紹希爾排序的基本思想及其代碼實(shí)現(xiàn)
    2022-09-09

最新評(píng)論