当前位置: 首页 > news >正文

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

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

  1. 创建实体类
  2. 创建Mapper XML
  3. 编写<select>SQL标签
  4. 开启驼峰命名映射
  5. 新增<mapper>
  6. 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);}}

演示查询结果:

http://www.lryc.cn/news/487734.html

相关文章:

  • CSS 样式的优先级?
  • Linux驱动开发快速入门——字符设备驱动(直接操作寄存器设备树版)
  • 数据结构《栈和队列》
  • C# 超链接控件LinkLabel无法触发Alt快捷键
  • JVM类加载过程-Loading
  • 2024年11月19日Github流行趋势
  • 详细描述一下Elasticsearch索引文档的过程?
  • 基于css的Grid布局和vue实现点击左移右移轮播过渡动画效果
  • HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)习惯推荐方案概述
  • 【AtCoder】Beginner Contest 380-F.Exchange Game
  • 30. 并发编程
  • 【包教包会】CocosCreator3.x框架——带翻页特效的场景切换
  • k8s上面的Redis集群链接不上master的解决办法
  • <项目代码>YOLOv8 瞳孔识别<目标检测>
  • 网络编程-002-UDP通信
  • MySQL更换瀚高语法更换
  • Object.prototype.hasOwnProperty.call(item, key) 作用与用途
  • DNS的10种资源记录
  • 【数据分享】1981-2024年我国逐日最低气温栅格数据(免费获取)
  • Kafka进阶_1.生产消息
  • 百度世界2024:智能体引领AI应用新纪元
  • NIST 发布后量子密码学转型战略草案
  • 同向双指针
  • 小鹏汽车大数据面试题及参考答案
  • 华为再掀技术革新!超薄膜天线设计路由器首发!
  • CREO TOOLKIT二次开发学习之字符转换
  • vmware虚拟机安装Windows11提示电脑不符合要求?
  • 【金融风控项目-08】:特征构造
  • 计算机网络 (2)计算机网络的类别
  • 10.《滑动窗口篇》---②长度最小的子数组(中等)