[JAVA]用MyBatis框架实现一个简单的数据查询操作
基于在前面几章我们已经学习了对MyBatis进行环境配置,并利用SqlSessionFactory核心接口生成了sqlSession对象对数据库进行交互,执行增删改查操作。这里我们就先来学习如何对数据进行查询的操作,具体查询操作有以下几个步骤
- 创建实体类
- 创建Mapper XML
- 编写<select>SQL标签
- 开启驼峰命名映射
- 新增<mapper>
- SqlSession执行select语言
首先,我们需要有可供查询信息的数据表并被导入到我们IDEA开发工具中,这里我导入了一个有关奶粉售卖信息的商品表
其中t-goods商品表内容如下
我们要做的操作是按照商品编号从大到小倒序排列,并且将结果的前十条提取出来 步骤演示:
第一步.创建实体类
创建一个com.mybatis.entity.Goods包,创建命名为Goods代表商品的类,内容如下:
public class Goods{private Integer goodsId;//商品编号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文件,此文件用意是说明实体类与表之间的映射关系
第三步.编写<select>SQL标签
在goods.xml中声明 文件内容:
//xml标准声明部分
<?xml version="1.0" encoding ="UTF-8"?>//Mybatis的DTD部分
<!DOCTYPE mapperPUBLIC "-//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>
然后在mybatis-config.xml中对它声明
<mappers><mapper 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);}}
演示查询结果:
相关文章:
[JAVA]用MyBatis框架实现一个简单的数据查询操作
基于在前面几章我们已经学习了对MyBatis进行环境配置,并利用SqlSessionFactory核心接口生成了sqlSession对象对数据库进行交互,执行增删改查操作。这里我们就先来学习如何对数据进行查询的操作,具体查询操作有以下几个步骤 创建实体类创建Ma…...
CSS 样式的优先级?
在CSS中,样式的优先级决定了当多个样式规则应用于同一个元素时,哪个样式会被最终使用。以下是一些决定CSS样式优先级的规则: 就近原则: 最后应用在元素上的样式具有最高优先级。这意味着如果两个选择器都应用了相同的样式…...
Linux驱动开发快速入门——字符设备驱动(直接操作寄存器设备树版)
Linux驱动开发快速入门——字符设备驱动 前言 笔者使用开发板型号:正点原子的IMX6ULL-alpha开发板。ubuntu版本为:20.04。写此文也是以备忘为目的。 字符设备驱动 本小结将以直接操作寄存器的方式控制一个LED灯,可以通过read系统调用可以…...
数据结构《栈和队列》
文章目录 一、什么是栈?1.1 栈的模拟实现1.2 关于栈的例题 二、什么是队列?2.2 队列的模拟实现2.2 关于队列的例题 总结 提示:关于栈和队列的实现其实很简单,基本上是对之前的顺序表和链表的一种应用,代码部分也不难。…...
C# 超链接控件LinkLabel无法触发Alt快捷键
在C#中,为控件添加快捷键的方式有两种,其中一种就是Windows中较为常见的Alt快捷键,比如运行对话框,记事本菜单等。只需要按下 Alt 框号中带下划线的字母即可触发该控件的点击操作。如图所示 在C#开发中,实现类似的操作…...
JVM类加载过程-Loading
一、Class对象的生命周期 .class文件是如何加载到内存中:.class文件是ClassLoader通过IO将文件读到内存,再通过双亲委派的模式进行Loading,再Linking、以及Initializing,代码调用等一系列操作后,进行GC,组成完整的生命周期; 二、双亲委派模式(Loading的过程): 1、类…...
2024年11月19日Github流行趋势
项目名称:build-your-own-x 项目维护者:danistefanovic, rohitpaulk, sarupbanskota 等项目介绍:通过从零开始重新创建你最喜欢的技术来掌握编程。项目star数:312,081项目fork数:29,004 项目名称:freqtrad…...
详细描述一下Elasticsearch索引文档的过程?
大家好,我是锋哥。今天分享关于【详细描述一下Elasticsearch索引文档的过程?】面试题。希望对大家有帮助; 详细描述一下Elasticsearch索引文档的过程? Elasticsearch的索引文档过程是其核心功能之一,涉及将数据存储到…...
基于css的Grid布局和vue实现点击左移右移轮播过渡动画效果
直接上代码,以下代码基于vue2,需要Vue3或者react可以使用国内直连GPT/Claude来帮你转换下 代码如下: // ScrollCardsGrid.vue <template><div class"scroll-cards-container"><!-- 左箭头 --><div v-show"showLef…...
HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)习惯推荐方案概述
一、习惯推荐是HarmonyOS学习用户的行为习惯后做出的主动预测推荐。 1.开发者将用户在应用/元服务内的使用行为向HarmonyOS共享,使得HarmonyOS可以基于共享的数据学习用户的行为习惯。 2.在HarmonyOS学习到用户的行为习惯后,会给用户推荐相应功能&#x…...
【AtCoder】Beginner Contest 380-F.Exchange Game
题目链接 Problem Statement Takahashi and Aoki will play a game using cards with numbers written on them. Initially, Takahashi has N N N cards with numbers A 1 , … , A N A_1, \ldots, A_N A1,…,AN in his hand, Aoki has M M M cards with numbers B …...
30. 并发编程
一、什么是多任务 如果一个操作系统上同时运行了多个程序,那么称这个操作系统就是 多任务的操作系统,例如:Windows、Mac、Android、IOS、Harmony 等。如果是一个程序,它可以同时执行多个事情,那么就称为 多任务的程序。…...
【包教包会】CocosCreator3.x框架——带翻页特效的场景切换
一、效果演示 二、如何获取 1、https://gitee.com/szrpf/TurnPage 2、解压,导入cocos creator(版本3.8.2),可以直接运行Demo演示 三、算法思路 1、单场景 页面预制体 通过loadScene来切换页面,无法实现页面特效。…...
k8s上面的Redis集群链接不上master的解决办法
问题描述 之前在k8s上面部署了一台node,然后创建了6个redis的pod,构建了一个redis的集群,正常运行。 最近添加了一台slave node,然后把其中的几个redis的pod调度到了slave node上面,结果集群就起不来了,…...
<项目代码>YOLOv8 瞳孔识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
网络编程-002-UDP通信
1.UDP通信的简单介绍 1.1不需要通信握手,无需维持连接,网络带宽需求较小,而实时性要求高 1.2 包大小有限制,不发大于路径MTU的数据包 1.3容易丢包 1.4 可以实现一对多,多对多 2.客户端与服务端=发送端与接收端 代码框架 收数据方一般都是客户端/接收端 3.头文件 #i…...
MySQL更换瀚高语法更换
MySQL更换瀚高语法更换 一、前言二、语句 一、前言 水一篇,mysql更换瀚高之后,一些需要更换的语法介绍 > 二、语句 MySQL瀚高MySQL用法瀚高用法说明ifnull(x,y)coalesce(x,y)相同相同用于检查两个表达式并返回第一个非空表达式。如果第一个表达式不是 NULL&…...
Object.prototype.hasOwnProperty.call(item, key) 作用与用途
在 JavaScript 中,Object.prototype.hasOwnProperty.call(item, key) 是一种检查对象 item 是否具有特定属性 key 作为自身的属性(而不是继承自原型链)的方法。这种调用方式是安全的,特别是在处理可能被修改过原型链的对象时。 解…...
DNS的10种资源记录
前言 在DNS(域名系统)中,常见的资源记录(Resource Records, RR)用于存储域名与IP地址、邮件服务器等网络资源之间的映射关系。以下是几种常见的DNS资源记录: 1. A记录(Address Record…...
【数据分享】1981-2024年我国逐日最低气温栅格数据(免费获取)
气象数据一直是一个价值很高的数据,它被广泛用于各个领域的研究当中。之前我们分享过来源于美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI)发布的1929-2024年全球站点的逐日最低气温数据(可查看之前的文章获悉详情&…...
Kafka进阶_1.生产消息
文章目录 一、Controller选举二、生产消息2.1、创建待发送数据2.2、创建生产者对象,发送数据2.3、发送回调2.3.1、异步发送2.3.2、同步发送 2.4、拦截器2.5、序列化器2.6、分区器2.7、消息可靠性2.7.1、acks 02.7.2、acks 1(默认)2.7.3、acks -1或all 2.8、部分重…...
百度世界2024:智能体引领AI应用新纪元
在近日盛大举行的百度世界2024大会上,百度创始人李彦宏以一场题为“文心一言”的精彩演讲,再次将全球科技界的目光聚焦于人工智能(AI)的无限可能。作为一名科技自媒体,我深感这场演讲不仅是对百度AI技术实力的一次全面…...
NIST 发布后量子密码学转型战略草案
美国国家标准与技术研究所 (NIST) 发布了其初步战略草案,即内部报告 (IR) 8547,标题为“向后量子密码标准过渡”。 该草案概述了 NIST 从当前易受量子计算攻击的加密算法迁移到抗量子替代算法的战略。该草案于 2024 年 11 月 12 日发布,开放…...
同向双指针
长度最小的子数组 力扣209 #define MIN(a, b) ((b) < (a) ? (b) : (a)) int minSubArrayLen(int target, int* nums, int numsSize) {int ans numsSize 1;int left 0;int right 0;int sum 0;for (right 0; right < numsSize; right){sum nums[right];while (su…...
小鹏汽车大数据面试题及参考答案
抽象类与接口的区别是什么? 抽象类是一种不能被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法是没有具体实现的方法,必须在子类中被实现。抽象类主要用于为一组相关的类提供一个通用的模板,子类可以继承抽象类并实现其中的抽象方法,也可以使用抽象类中的非抽象方法…...
华为再掀技术革新!超薄膜天线设计路由器首发!
随着Wi-Fi技术的不断进步,新一代的Wi-Fi 7路由器凭借其高速率、低延迟、更稳定的性能受到了广泛关注。它能够更好地满足现代家庭对网络性能的高要求,带来更加流畅、高效的网络体验。9月24日,华为在其秋季全场景新品发布会上推出了全新Wi-Fi 7…...
CREO TOOLKIT二次开发学习之字符转换
在tk中,有很多都是可以直接强制转换的,本文章只列举字符相关的转换。 不建议使用tk官方手册的函数进行转换,因此下文均以原生c进行举例。 //double转wstring wstring a; double b; ato_wstring(b);//wstring转double wstring wstr L"…...
vmware虚拟机安装Windows11提示电脑不符合要求?
vmware虚拟机安装Win11提示电脑不符合要求? 安装问题能进入选择语言界面,请看这不能进入选择语言界面,请看这 安装问题 Vmware虚拟机安装Windows11时提示电脑不符合要求,如下: 修改了虚拟机的硬件配置还是不行&#x…...
【金融风控项目-08】:特征构造
文章目录 1.数据准备1.1 风控建模特征数据1.2 人行征信数据1.3 据之间的内在逻辑 2 样本设计和特征框架2.1 定义观察期样本2.2 数据EDA(Explore Data Analysis)2.3 梳理特征框架 3 特征构造3.1 静态信息和时间截面特征3.2 未来信息问题3.2.1 未来信息案例3.2.2 时间序列特征的未…...
计算机网络 (2)计算机网络的类别
计算机网络的类别繁多,根据不同的分类原则,可以得到各种不同类型的计算机网络。 一、按覆盖范围分类 局域网(LAN): 定义:局域网是一种在小区域内使用的,由多台计算机组成的网络。覆盖范围&#…...
泰国男女做那个视频网站/搜索网站关键词
整理: 1.cursor: not-allowed;红色圆圈斜线:禁止操作。 2.white-space:nowrap; 字符不准换行。 text-overflow:ellipsis;当文字超出显示范围的时候以省略号处理 3.pointer-events 鼠标穿透遮罩层操作下层元素 4.str.slice(0,-2);截取最后两位之前的所…...
网站规划的内容/qq营销推广方法和手段
3.1功能界面的组件化编码流程(组件拆分思想) 拆分组件:拆分界面,抽取组件实现静态组件,使用组件实现静态页面效果时间动态组件 3.1 动态显示初始化数据 3.11数据类型 3.12数据名称 3.13保存在那个组件? 3.2交互(从绑定事件监听开始) 3.2组件的组合使用-TodoList 功能:组件化…...
公司内部网站页面设计/热搜榜排名今日
构造器 1.父类中如果有无参构造器,在子类中的每个构造器首行都会有一个默认的隐式的super()指向父类的无参构造器。 2.如果父类中没有无参构造器,子类中的每个子类构造器的首行要显示调用父类的有参构造器,或者this调用本类构造器。 注意 …...
中英文企业网站/放单平台大全app
前言 每天一篇博客,高产似那啥,如有错误,欢迎指出 什么是tmpfs mounts bind mount与volume是持久化数据到磁盘中,在linux上,也可以使用tmpfs mounts,tmpfs mounts是将数据咱存在内存中,当容器…...
济宁做网站建设的公司/百度风云搜索榜
index.html页面: <!DOCTYPE html><html> <head> <meta charset"UTF-8"> <title>require.js封装轮播图</title> <style type"text/css"> *{ margin: 0; padding: 0; list-style: n…...
做积分商城网站/网站技术外包公司
1. CAP 的由来 要理解 CAP,首先我们要清楚,为何会有人提出 CAP?他提出 CAP 是为了解决什么问题? 时间回到 1985 年,彼时,后来证明了 CAP 理论的 Lynch 教授此时给当时的 IT 界来了一记惊雷: …...