MyBatis框架实现一个简单的数据查询操作

2024-12-30 15:50

本文主要是介绍MyBatis框架实现一个简单的数据查询操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的...

基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核心接口生成了sqlSession对象对数据库进行交互,执行增删改查操作。这里我们就先来学习如何对数据进行查询的操作,具体查询操作有以下几个步骤

  • 创建实体类
  • 创建Mapper XML
  • 编写<select>SQL标签
  • 开启驼峰命名映射
  • 新增<mapper>
  • SqlSession执行select语言

首先,我们需要有可供查询信息的数据表并被导入到我们IDEA开发工具中,这里我导入了一个有关奶粉售卖信息的商品表

MyBatis框架实现一个简单的数据查询操作

 其中t-goods商品表内容如下

MyBatis框架实现一个简单的数据查询操作

我们要做的操作是按照商品编号从大到小倒序排列,并且将结果的前十条提取出来 步骤演示:

第一步.创建实体类

创建一个com.mybatis.entity.Goods包,创建命名为Goods代表商品的类,内容如下:

public class Goods{
   private Integer goodsId;//商品编号
   China编程private String title;//标题
   private String subTitle;//子标题
   private Float originalCost;//原始价格
   private Float currentPrice;//当前价格
   private Float discount;//折扣率
   private Integer isFreeDelivery;//是否包邮,1-包邮 0-不包邮
   private Integer categoryId;//分类编号
}

然后选中以上代码块快捷键Alt+Insert生成getter/setter方法

public Integer getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Integer goodsId) {
        this.goodsId = goodsId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getSubTitle() {
        return subTitle;
    }

    public void setSubTitle(String subTitle) {
        this.subTitle = subTitle;
    }

    public Float getOriginalCost() {
        return originalCost;
    }

    public void setOriginalCost(Float originalCost) {
        this.originalCost = originalCost;
    }

    public Float getCurrentPrice() {
        return currentPrice;
    }

    public void setCurrentPrice(Float currentPrice) {
        this.currentPrice = currentPrice;
    }

    public Float getDiscount() {
        return discount;
    }

    public void setDiscount(Float discount) {
        this.discount = discount;
    }编程

    public Integer getIsFreeDelivery() {
        return isFreeDelivery;
    }

    public void setIsFreeDelivery(Integer isFreeDelivery) {
        this.isFreeDelivery = isFreeDelivery;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }
}

第二步.创建Mapper XML文件

在resources目录下创建名为mappers的包,创建goods.xml文件,此文件用意是说明实体类与表之间的映射关系

MyBatis框架实现一个简单的数据查询操作

第三步.编写<select>SQL标签

在goods.xml中声明  文件内容:

//xml标准声明部分
<?xml version="1.0" encoding ="UTF-8"?>

//Mybatis的DTD部分
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

//MyBatis映射部分   namespace:命名空间
<mapper namespace="goods">
    <select id="selectAll" resultType="com.mybatis.entity.Goods">
       select * from t_goods order by goods_id desc limit 10
       //按照商品编号从大到小倒序排列,并且将结果的前十条提取出来 
    </select>
</mapper>

//resultType="com.mybatis.entity.Goods"指定了该查询操作执行后返回结果的类型,这里将返回的结果映射成com.mybatis.entity.Goods类型的对象

第四步.新增<mapper>

python后在mybathttp://www.chinasem.cnis-config.xml中对它声明

<mappers>
     <maandroidpper resource="mappers/goods.xml"/>
</mappers>

第五步.开启驼峰命名映射

<settings>
   <!--goods_id ==> goodsId 驼峰命名转换 -->
   <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

第六步.SqlSession执行select语言

打开MyBatisTestor测试用例类,执行goods类中书写的SQ语句,并且得到对应的结果

@Test
public void testSelectAll(){
   SqlSession session = null;
   try{
       session = MyBatisUtils.openSession();
       List<Goods> List = session.selectList("goods.selectALL");
       //打印表结果
       for(Goods  g: list){
           System.out.printin(g.getTitle());
   }
   }catch(Exception e){
       throw e;
   }finally{
        MyBatisUtils.closeSession(session);
   }
  

}

演示查询结果:

MyBatis框架实现一个简单的数据查询操作

到此这篇关于MyBatis框架实现一个简单的数据查询操作的文章就介绍到这了,更多相关MyBatis 数据查询操作内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于MyBatis框架实现一个简单的数据查询操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1152853

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx