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

mybatis模糊查詢以及結(jié)果封裝詳解

這篇具有很好參考價值的文章主要介紹了mybatis模糊查詢以及結(jié)果封裝詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

mybatis模糊查詢以及結(jié)果封裝詳解

創(chuàng)建maven項目:項目結(jié)構(gòu)如圖所示

mybatis模糊查詢以及結(jié)果封裝詳解

準備數(shù)據(jù)庫表:

mybatis模糊查詢以及結(jié)果封裝詳解

準備pom.xml所需的依賴:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.etime</groupId>
    <artifactId>day09</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
<!--        添加lombok依賴工具使用其中的注解方法可以讓實體類中get,set,以及實體類中操作少一些-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.16</version>
        </dependency>

<!--        添加和引入mybatis的版本號等依賴-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>

<!--        這里添加mysql依賴-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
            <scope>runtime</scope>
        </dependency>

<!--        如果不需要也可不進行單元測試的依賴引入-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

編寫核心配置文件加載所需要的資源

編寫config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--    配置 mybatis的環(huán)境-->
    <environments default="development">
<!--        配置環(huán)境-->
        <environment id="development">
<!--            配置事物類型-->
            <transactionManager type="JDBC"></transactionManager>
<!--            配置連接數(shù)據(jù)庫的信息:用的是數(shù)據(jù)源[連接池]-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--                jdbc:mysql://localhost:3306/db_school?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC-->
<!--                和javaWeb servlet三層架構(gòu)中的區(qū)別這里是只需要設置時區(qū)就可以了-->
                <property name="url" value="jdbc:mysql://localhost:3306/db_school?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="h123456"/>
            </dataSource>
        </environment>
    </environments>
<!--    注冊StudentDao接口映射文件位置-->
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>
</configuration>

創(chuàng)建工廠連接數(shù)據(jù)處理工具SqlSessionUtil.java

SqlSessionUtil.java

package com.etime.util;

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 java.io.IOException;
import java.io.InputStream;

public class SqlSessionUtil {

    private static  SqlSession sqlSession =null;
    static {
    //加載配置文件
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream("config.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        //用于讀取配置文件內(nèi)容,生成SqlSessionFactory
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
    //獲取SqlSession對象
    sqlSession = sqlSessionFactory.openSession();
    }
    public SqlSession getSqlSession(){
        return sqlSession;
    }
}

創(chuàng)建學生實體類對象Student.java

package com.etime.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//添加無參構(gòu)造函數(shù)
@NoArgsConstructor
//添加全參數(shù)構(gòu)造函數(shù)
@AllArgsConstructor
//添加所有需要的get,set等方法
@Data
public class Student {
    private int sid;
    private String sname;
    private String sgender;
    private int sage;
    private String semail;
    private String sphoto;
}

模糊查詢在開發(fā)中是一項不可缺少的重要內(nèi)容。對于mybatis實現(xiàn)模糊查詢有三種方式:

1、添加模糊查詢的接口方法:getStudentSname;

//模糊查詢根據(jù)學生名子姓或者名查詢所有學生信息
    List<Student> getStudentBySname1(String sname);

    List<Student> getStudentBySname2(String sname);

    List<Student> getStudentBySname3(String sname);

2、配置接口方法對應的sql文件

1、配置占位符方式#{}
 <select id="getStudentBySname1" parameterType="String" resultType="com.etime.pojo.Student">
     select * from student where sname like #{sname}
 </select>
2、配置拼接字符串方式${}
 <select id="getStudentBySname2" parameterType="String" resultType="com.etime.pojo.Student">
     select * from student where sname like '%${value}%'
 </select>

我們在上面將原來的#{}占位符,改成了 v a l u e 。注意如果用模糊查詢的這種寫法,那么 {value}。注意如果用模糊查詢的這種寫法,那么 value。注意如果用模糊查詢的這種寫法,那么{value}的寫法就是固定的,不能寫成其它名字。

3、配置mysql函數(shù)式concat
<select id="getStudentBySname3" parameterType="String" resultType="com.etime.pojo.Student">
     select * from student where sname like concat('%',#{sname},'%')
 </select>
測試:
@Test
    public void t09(){
        SqlSession sqlSession = sqlSessionUtil.getSqlSession();
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        String sname="%高%";
        List<Student> list = studentDao.getStudentBySname1(sname);
        System.out.println(list);
        sqlSession.close();
    }

    @Test
    public void t10(){
        SqlSession sqlSession = sqlSessionUtil.getSqlSession();
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        Map<String,Object> map = new HashMap<>();
        List<Student> list = studentDao.getStudentBySname2("高");
        System.out.println(list);
        sqlSession.close();
    }

    @Test
    public void t11(){
        SqlSession sqlSession = sqlSessionUtil.getSqlSession();
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        List<Student> list = studentDao.getStudentBySname3("高");
        System.out.println(list);
        sqlSession.close();
    }

配置占位符方式#{}:

mybatis模糊查詢以及結(jié)果封裝詳解

配置拼接字符串方式${}

mybatis模糊查詢以及結(jié)果封裝詳解

配置mysql函數(shù)式concat

mybatis模糊查詢以及結(jié)果封裝詳解

三次測試結(jié)果一樣,說明三種方式都是ok的

mybatis結(jié)果封裝

resultMap標簽介紹

resultMap 標簽可以建立查詢的列名和實體類的屬性名稱不一致時建立對應關系。從而實現(xiàn)封裝。在 select 標簽中使用 resultMap 屬性指定引用即可。同時 resultMap 可以實現(xiàn)將查詢結(jié)果映射為復雜類型的 pojo,比如在查詢結(jié)果映射對象中包括 pojo 和 list 實現(xiàn)一對一查詢和一對多查詢。

resultMap的使用

在接口中定義方法:

List<Student> getAllStudentsInfo();

在StudentMapper.xml中用resultMap編寫

 <resultMap id="stuMap" type="com.etime.pojo.Student">
        <id property="sid" column="sid"></id>
        <result property="sname" column="sname"></result>
        <result property="sgender" column="sgender"></result>
        <result property="sage" column="sage"></result>
        <result property="semail" column="semail"></result>
        <result property="sphoto" column="sphoto"></result>
    </resultMap>

測試類MybatisTest.java中編寫測試方法

@Test
    public void t013(){
        SqlSession sqlSession = sqlSessionUtil.getSqlSession();
        //獲取StudentDao對象
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        //調(diào)用方法獲取結(jié)果
        List<Student> list = studentDao.getAllStudentsInfo();
        for (Student student:list
        ) {
            System.out.println(student);
        }
        sqlSession.close();
    }

運行結(jié)果:
mybatis模糊查詢以及結(jié)果封裝詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-421816.html

到了這里,關于mybatis模糊查詢以及結(jié)果封裝詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • Mybatis中表關系查詢結(jié)果集映射

    Mybatis中表關系查詢結(jié)果集映射

    resultMap 元素是 MyBatis 中最重要最強大的元素。它可以讓你從 90% 的 JDBC ResultSets 數(shù)據(jù)提取代碼中解放出來,并在一些情形下允許你進行一些 JDBC 不支持的操作。實際上,在為一些比如連接的復雜語句編寫映射代碼的時候,一份 resultMap 能夠代替實現(xiàn)同等功能的數(shù)千行代碼。Re

    2024年02月16日
    瀏覽(21)
  • 【MyBatis】攔截查詢結(jié)果同時動態(tài)替換

    項目中需要用到響應時替換某些字段的某些值。

    2024年02月04日
    瀏覽(32)
  • MyBatis-Plus條件構(gòu)造器[常用的模糊查詢、排序查詢、邏輯查詢和指定字段查詢案例]

    MyBatis-Plus條件構(gòu)造器[常用的模糊查詢、排序查詢、邏輯查詢和指定字段查詢案例]

    Mybatis-Plus知識點[MyBatis+MyBatis-Plus的基礎運用]_心態(tài)還需努力呀的博客-CSDN博客? Mybatis-Plus+SpringBoot結(jié)合運用_心態(tài)還需努力呀的博客-CSDN博客 MyBaits-Plus中@TableField和@TableId用法_心態(tài)還需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作(通過id更新和條件更新)_心態(tài)還需努力呀的博客

    2024年02月06日
    瀏覽(62)
  • 如何使用ES做簡單的時間條件過濾+模糊查詢+精確匹配+關鍵字排除,查詢 elasticsearch查詢結(jié)果包含或排除某些字段、_source查詢出需要的屬性名稱

    目錄 一、時間條件過濾+模糊查詢+精確匹配+排除 1. 查詢出包含 log_geo 的數(shù)據(jù) “wildcard”: { “message”: “l(fā)og_geo” } 2. 查詢某個時間段的數(shù)據(jù) 3. 條件查詢與條件排除數(shù)據(jù) 4. from 表示起始的記錄的ID 5. size 表示顯示的記錄數(shù) 6.sort排序 desc降序、asc升序? 7.should查詢在mysql中

    2024年01月18日
    瀏覽(23)
  • mybatis查詢多個結(jié)果返回map--@MapKey使用方法

    mybatis查詢多個結(jié)果返回map--@MapKey使用方法

    目錄 ? ? ? ? 介紹 ?源碼分析: 在使用mybatis的時候遇到一種情況,查詢結(jié)果集返回多個,想用map接收,以前是用List對象接收,然后java代碼中轉(zhuǎn)換成map。其實mybatis是支持返回map的。下面就介紹使用方法。 測試代碼: 下面@MapKey中的id是BusinessPricePO中的一個屬性id,否則會報錯

    2024年02月12日
    瀏覽(23)
  • Mybatis 中如何將sql執(zhí)行結(jié)果封裝為目標對象并返回的?都有哪些映射形式?

    在Mybatis中,可以通過配置映射文件來將SQL執(zhí)行結(jié)果封裝為目標對象并返回。 一種映射形式是使用resultType屬性,將查詢結(jié)果映射為指定的目標對象。例如: 另一種映射形式是使用resultMap屬性,通過定義映射關系來將查詢結(jié)果映射為目標對象。例如: 除了以上兩種形式,還可

    2024年02月07日
    瀏覽(21)
  • JDBC的增刪改-結(jié)果集的元數(shù)據(jù)-Class反射-JDBC查詢封裝

    ?1、JDBC的六大步驟 (導入jar包, 加載驅(qū)動類,獲取連接對象, 獲取sql執(zhí)行器、執(zhí)行sql與并返回結(jié)果, 關閉數(shù)據(jù)庫連接) 2、?封裝了一個DBUtil 類, 通過讀取屬性文件的方式獲取 基礎連接信息。 3、?批量添加: 一次性可執(zhí)行多個添加記錄 ,將多個sql語句在當前這次連接

    2024年02月13日
    瀏覽(15)
  • MyBatis動態(tài)語句且如何實現(xiàn)模糊查詢及resultType與resultMap的區(qū)別---詳細介紹

    MyBatis動態(tài)語句且如何實現(xiàn)模糊查詢及resultType與resultMap的區(qū)別---詳細介紹

    前面我們學習了如何使用Mybatis實現(xiàn)簡單的增刪改查。今天我們來學習如何使用動態(tài)語句來根據(jù)不同的條件生成不同的SQL語句。這在實際開發(fā)中非常有用,因為通常查詢條件是多樣化的,需要根據(jù)實際情況來拼接SQL語句,那什么是MyBatis動態(tài)語句呢,看下面詳細簡介 MyBatis動態(tài)語

    2024年02月11日
    瀏覽(19)
  • SQL Server 數(shù)據(jù)表模糊查詢(like 用法)以及查詢函數(shù)

    在SQL Server Management Studio (SSMS) 中,進行模糊查詢主要是通過使用 like 操作符來實現(xiàn)的。 like 操作符用于在 where 語句中搜索列中具有指定模式的數(shù)據(jù)。 我們在簡單例子中來了解: % 通配符:表示任意數(shù)量的字符。 這個例子會選擇 column_name 列中包含\\\"pattern\\\"這個詞的所有記錄,就

    2024年01月22日
    瀏覽(53)
  • 萬級數(shù)據(jù)優(yōu)化EasyExcel+mybatis流式查詢導出封裝

    萬級數(shù)據(jù)優(yōu)化EasyExcel+mybatis流式查詢導出封裝

    時間 更新內(nèi)容 2023/09/23 fix: 每個sheet大小和存儲內(nèi)存條數(shù)一致的bug update: 增大一個sheet的默認容量 我們不妨先給大家講一個概念,利用此概念我們正好給大家介紹一個數(shù)據(jù)庫優(yōu)化的小技巧: 需求如下:將一個地市表的數(shù)據(jù)導出70萬條。 如果你不假思索,直接一條sql語句搞上去

    2024年02月11日
    瀏覽(49)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包