国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis映射文件 — 常用標(biāo)簽及特殊字符的處理

這篇具有很好參考價值的文章主要介紹了Mybatis映射文件 — 常用標(biāo)簽及特殊字符的處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、Mybatis映射文件 — resultMap標(biāo)簽

(1)新建一個Teacher類,如下

(2)新建一個TeacherMapper持久層接口

(3)新增TeacherMapper.xml? Mybatis映射文件

(4)新增testTeacherMapper測試類

(5)運行結(jié)果

二、Mybatis映射文件 — sql和include標(biāo)簽

(1)持久層新增根據(jù)Id查詢方法

(2)映射文件新增相應(yīng)標(biāo)簽

(3)測試類新增方法

(4)測試結(jié)果

三、Mybatis映射文件 — 特殊字符處理

(1)持久層新增查詢比輸入ID大的集合

(2)映射文件新增標(biāo)簽

(3)測試類新增測試方法

(4)運行結(jié)果?


一、Mybatis映射文件 — resultMap標(biāo)簽

(1)新建一個Teacher類,如下

package com.mybatisstudy.pojo;

public class Teacher {
    private int id;
    private String teacherName;

    public Teacher(){

    }

    public Teacher(int id,String name){
        this.id = id;
        this.teacherName = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    @Override
    public String toString() {
        return "Teacher[ " +
                "id=" + id +
                ", teacherName='" + teacherName + '\'' +
                " ]";
    }
}

數(shù)據(jù)庫里有如下記錄:

mybatis如何處理特殊字符,mybatis,java,開發(fā)語言

(2)新建一個TeacherMapper持久層接口

? ? ? ? 并且新增一個查詢所有用戶方法

package com.mybatisstudy.mapper;

import com.mybatisstudy.pojo.Teacher;

import java.util.List;

public interface TeacherMapper {
    // 查詢所有記錄
    List<Teacher> findAll();
}

(3)新增TeacherMapper.xml? Mybatis映射文件

<?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.mybatisstudy.mapper.TeacherMapper">
    
    <select id="findAll" resultType="com.mybatisstudy.pojo.Teacher">
        select * from teacher
    </select>
  
</mapper>

(4)新增testTeacherMapper測試類

import com.mybatisstudy.mapper.TeacherMapper;
import com.mybatisstudy.pojo.Teacher;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.InputStream;
import java.util.List;

public class TestTeacherMapper {
    InputStream is = null;
    SqlSession session = null;
    TeacherMapper teacherMapper = null;

    //前置方法,不必重復(fù)代碼
    @Before
    public void before() throws Exception {
        System.out.println("前置方法執(zhí)行·············");
        // (1)讀取核心配置文件
        is = Resources.getResourceAsStream("SqlMapConfig.xml");
        // (2)創(chuàng)建SqlSessionFactoryBuilder對象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        // (3)SqlSessionFactoryBuilder對象獲取SqlSessionFactory對象
        SqlSessionFactory factory = builder.build(is);
        // (4)SqlSessionFactory對象獲取SqlSession對象
        session = factory.openSession();
        // (5)SqlSession對象獲取代理對象
        teacherMapper = session.getMapper(TeacherMapper.class);
    }

    //后置方法,釋放資源
    @After
    public void after() throws Exception {
        System.out.println("后置方法執(zhí)行·············");
        session.close();
        is.close();
    }
    // 測試查詢所有教師方法
    @Test
    public void testFindAll(){
        List<Teacher> teachers = teacherMapper.findAll();
        teachers.forEach(System.out::println);
    }
}

(5)運行結(jié)果

mybatis如何處理特殊字符,mybatis,java,開發(fā)語言

????????哎呀,這是為什么呢,查詢有三條記錄后,但是我們的集合對象卻是為空,?原來是因為

MyBatis可以將數(shù)據(jù)庫結(jié)果集封裝到對象中,是因為結(jié)果集的列名和對象屬性名相同

當(dāng)POJO屬性名和數(shù)據(jù)庫列名不一致時,MyBatis無法自動完成映射關(guān)系。

????????那有什么好辦法可以解決呢?

? ? ? ? 此時有兩種解決方案:

? ? ? ? ①?Sql語句的查詢字段起與POJO屬性相同的別名。如下代碼

    <select id="findAll" resultType="com.mybatisstudy.pojo.Teacher">
        select tid id, tname teacherName from teacher
    </select>

? ? ? ? 測試結(jié)果:

????????mybatis如何處理特殊字符,mybatis,java,開發(fā)語言

????????OK,這次發(fā)現(xiàn)沒有問題了;

? ? ? ? ② 自定義映射關(guān)系:?

????????在映射文件中,使用 <resultMap> 自定義映射關(guān)系;在 <select> 標(biāo)簽中,使用 resultMap 屬性代替 resultType 屬性,使用自定義映射關(guān)系。 如下:

    <select id="findAll" resultMap="teacherMapper">
        select * from teacher
    </select>
    <resultMap id="teacherMapper" type="com.mybatisstudy.pojo.Teacher">
        <!-- id自定義主鍵列 properties:POJO屬性名 column:數(shù)據(jù)庫列名-->
        <id property="id" column="tid"></id>
        <!-- result定義普通列 property:POJO屬性名 column:數(shù)據(jù)庫列名-->
        <result property="teacherName" column="tname"></result>
    </resultMap>

? ? ? ? 測試結(jié)果:

????????mybatis如何處理特殊字符,mybatis,java,開發(fā)語言

? ? ? ? OK,本次測試結(jié)果也是沒有問題的。?

二、Mybatis映射文件 — sql和include標(biāo)簽

????????<sql> 用來定義可重用的Sql片段,通過 <include> 引入該片段。如:Sql語句的查詢字段起與POJO屬性相同的別名,該Sql片段就可以重用。

(1)持久層新增根據(jù)Id查詢方法

// 根據(jù)ID查詢用戶
    Teacher findById(int id);

(2)映射文件新增相應(yīng)標(biāo)簽

    <sql id="selectAllField">
        select tid id,tname teacherName
    </sql>
    <select id="findById" resultType="com.mybatisstudy.pojo.Teacher">
        <include refid="selectAllField"></include>
        from teacher where tid=#{id}
    </select>

(3)測試類新增方法

// 測試根據(jù)ID查詢方法
    @Test
    public void testFindById(){
        int id = 3;
        Teacher teacher = teacherMapper.findById(id);
        System.out.println(teacher);
    }

(4)測試結(jié)果

mybatis如何處理特殊字符,mybatis,java,開發(fā)語言

????????OK,本次測試也是非常成功的?

三、Mybatis映射文件 — 特殊字符處理

????????在Mybatis映射文件中盡量不要使用一些特殊字符,如: < , > 等。 我們可以使用符號的實體來表示:

符號 實體
< &lt;
> &gt;
& &amp;
' &apos;
" &quot;

(1)持久層新增查詢比輸入ID大的集合

// 查詢比輸入Id要大的記錄
    List<Teacher> findById2(int id);

(2)映射文件新增標(biāo)簽

    <select id="findById2" resultType="com.mybatisstudy.pojo.Teacher">
        <include refid="selectAllField"></include>
        from teacher where tid &gt; #{id}
    </select>

(3)測試類新增測試方法

// 測試查詢比輸入Id大的記錄
    @Test
    public void testFindById2(){
        int id = 1;
        List<Teacher> teachers = teacherMapper.findById2(id);
        teachers.forEach(System.out::println);
    }

(4)運行結(jié)果?

mybatis如何處理特殊字符,mybatis,java,開發(fā)語言

? ? ? ? OK,確實查詢出了比id比1大的集合,本次實操也非常成功。?

? ? ? ? 文章到這里就結(jié)束啦,如果對您有所幫助的話,動動小指頭三連支持一下博主趴文章來源地址http://www.zghlxwxcb.cn/news/detail-788599.html

到了這里,關(guān)于Mybatis映射文件 — 常用標(biāo)簽及特殊字符的處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MyBatis處理LIKE查詢時,如何將傳值中包含下劃線_和百分號%等特殊字符處理成普通字符而不是SQL的單字符通配符

    MySQL中,_和%在LIKE模糊匹配中有特殊的含義: 下劃線?_?在LIKE模糊匹配中表示匹配任意單個字符。 百分號?%?在LIKE模糊匹配中表示匹配任意多個字符(包括零個字符) 如果這種字符不經(jīng)過處理,并且你的模糊查詢sql語句書寫如下,那么在你的前端頁面搜索框中輸入下劃線或

    2024年01月23日
    瀏覽(28)
  • MyBatis進階:告別SQL注入!MyBatis分頁與特殊字符的正確使用方式

    MyBatis進階:告別SQL注入!MyBatis分頁與特殊字符的正確使用方式

    目錄 引言 一、使用正確的方式實現(xiàn)分頁 1.1.什么是分頁 1.2.MyBatis中的分頁實現(xiàn)方式 1.3.避免SQL注入的技巧 二、特殊字符的正確使用方式 2.1.什么是特殊字符 2.2.特殊字符在SQL查詢中的作用 2.3.如何避免特殊字符引起的問題 2.3.1.使用CDATA區(qū)段? 2.3.2.使用實體引用 三、總結(jié)和展望

    2024年02月11日
    瀏覽(16)
  • Mybatis中處理特殊SQL處理邏輯

    Mybatis中處理特殊SQL處理邏輯

    在MyBatis中可能會有一些特殊的SQL需要去執(zhí)行,一般就是模糊查詢、批量刪除、動態(tài)設(shè)置表名、添加功能獲取自增的主鍵這幾種,現(xiàn)在分別來進行說明。 為了方便演示 ,定義了訪問的接口 模糊查詢非常的有用,對于一些訪問量不是很大的搜索都是直接使用模糊查詢的方式來做

    2024年02月05日
    瀏覽(14)
  • MyBatis--08--常用標(biāo)簽

    MyBatis--08--常用標(biāo)簽

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 屬性 描述 id 在命名空間中唯一的標(biāo)識符,被用來引用這條語句 parameterType 傳入這條語句的參數(shù)的類全限定名或別名 resultType 期望從這條語句中返回結(jié)果的類全限定名或別名, resultType 和 resultMap 之間只

    2024年02月19日
    瀏覽(15)
  • Mybatis:一對一查詢映射處理

    本博主將用CSDN記錄軟件開發(fā)求學(xué)之路上親身所得與所學(xué)的心得與知識,有興趣的小伙伴可以關(guān)注博主!也許一個人獨行,可以走的很快,但是一群人結(jié)伴而行,才能走的更遠(yuǎn)! MyBatis是一種流行的Java持久化框架,它提供了靈活而強大的查詢映射功能。在一些復(fù)雜的數(shù)據(jù)模型中

    2024年02月14日
    瀏覽(19)
  • Mybatis是什么?Mybatis中動態(tài)sql常用標(biāo)簽有哪些?

    Mybatis是什么? Mybatis是一種開源的Java持久層框架,它可以將SQL語句和Java代碼進行分離,使得開發(fā)人員可以更加專注于業(yè)務(wù)邏輯的實現(xiàn)。與Hibernate等ORM框架不同的是,Mybatis使用XML或注解的方式來描述SQL語句,這種方式更加靈活,因此在一些需要高度自定義SQL語句的場景下,

    2024年02月05日
    瀏覽(31)
  • 【MyBatis】1、MyBatis 核心配置文件、多表查詢、實體映射文件 ......

    【MyBatis】1、MyBatis 核心配置文件、多表查詢、實體映射文件 ......

    SSM( S pring、 S pringMVC、 M yBatis) Apache Shiro SpringBoot 事務(wù) :若將 N 個 數(shù)據(jù)庫操作 (CRUD)放到同一個事務(wù)中,則這 N 個數(shù)據(jù)庫操作最終要么全都生效,要么全都不生效 ?? 開啟事務(wù)【 START TRANSACTION 】 ?? 回滾事務(wù):若事務(wù)中的某個數(shù)據(jù)庫操作失敗,其他所有數(shù)據(jù)庫操作都需要

    2024年02月08日
    瀏覽(58)
  • MyBatis XML 映射文件

    MyBatis 的 XML 映射文件包含以下幾個部分: mapper 元素:定義了 XML 映射文件的根元素,其中包含了命名空間和 SQL 語句等信息。 select 、 insert 、 update 、 delete 元素:分別用于定義查詢、插入、更新、刪除操作的 SQL 語句。 resultMap 元素:用于定義結(jié)果集的映射關(guān)系。 parameterM

    2024年02月08日
    瀏覽(35)
  • 【Mybatis】XML映射文件

    【Mybatis】XML映射文件

    目錄 ?11.3XML映射文件 ????????1.select ?????????2.insert、update、delete ????????3.Sql? ????????4.parameters(參數(shù))? ????????5.resultMap ????????6.resultMap 使用示例? ????????(1)在先前創(chuàng)建的數(shù)據(jù)庫stu中創(chuàng)建表student 2,并插入若干條數(shù)據(jù),代碼如下: ??????

    2024年02月14日
    瀏覽(26)
  • 如何在MyBatis中處理復(fù)雜結(jié)果集映射關(guān)系

    如何在MyBatis中處理復(fù)雜結(jié)果集映射關(guān)系

    在開發(fā)中,我們不是總是對單表進行操作的場景。按照數(shù)據(jù)庫表的設(shè)計原則,要符合一定的范式,那么就需要對某一種場景的表進行拆分。 在業(yè)務(wù)上,可能是屬于同一個業(yè)務(wù)。但是,在數(shù)據(jù)庫中表的存儲這塊,可能就會涉及到表的拆分。 這里設(shè)計到表的創(chuàng)建直接創(chuàng)建兩張表

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包