MyBatis框架實(shí)現(xiàn)一個簡單的數(shù)據(jù)查詢操作
基于在前面幾章我們已經(jīng)學(xué)習(xí)了對MyBatis進(jìn)行環(huán)境配置,并利用SqlSessionFactory核心接口生成了sqlSession對象對數(shù)據(jù)庫進(jìn)行交互,執(zhí)行增刪改查操作。這里我們就先來學(xué)習(xí)如何對數(shù)據(jù)進(jìn)行查詢的操作,具體查詢操作有以下幾個步驟
- 創(chuàng)建實(shí)體類
- 創(chuàng)建Mapper XML
- 編寫<select>SQL標(biāo)簽
- 開啟駝峰命名映射
- 新增<mapper>
- SqlSession執(zhí)行select語言
首先,我們需要有可供查詢信息的數(shù)據(jù)表并被導(dǎo)入到我們IDEA開發(fā)工具中,這里我導(dǎo)入了一個有關(guān)奶粉售賣信息的商品表

其中t-goods商品表內(nèi)容如下

我們要做的操作是按照商品編號從大到小倒序排列,并且將結(jié)果的前十條提取出來 步驟演示:
第一步.創(chuàng)建實(shí)體類
創(chuàng)建一個com.mybatis.entity.Goods包,創(chuàng)建命名為Goods代表商品的類,內(nèi)容如下:
public class Goods{
private Integer goodsId;//商品編號
private String title;//標(biāo)題
private String subTitle;//子標(biāo)題
private Float originalCost;//原始價格
private Float currentPrice;//當(dāng)前價格
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;
}
}
第二步.創(chuàng)建Mapper XML文件
在resources目錄下創(chuàng)建名為mappers的包,創(chuàng)建goods.xml文件,此文件用意是說明實(shí)體類與表之間的映射關(guān)系

第三步.編寫<select>SQL標(biāo)簽
在goods.xml中聲明 文件內(nèi)容:
//xml標(biāo)準(zhǔn)聲明部分
<?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
//按照商品編號從大到小倒序排列,并且將結(jié)果的前十條提取出來
</select>
</mapper>
//resultType="com.mybatis.entity.Goods"指定了該查詢操作執(zhí)行后返回結(jié)果的類型,這里將返回的結(jié)果映射成com.mybatis.entity.Goods類型的對象第四步.新增<mapper>
然后在mybatis-config.xml中對它聲明
<mappers>
<mapper resource="mappers/goods.xml"/>
</mappers>第五步.開啟駝峰命名映射
<settings> <!--goods_id ==> goodsId 駝峰命名轉(zhuǎn)換 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
第六步.SqlSession執(zhí)行select語言
打開MyBatisTestor測試用例類,執(zhí)行g(shù)oods類中書寫的SQ語句,并且得到對應(yīng)的結(jié)果
@Test
public void testSelectAll(){
SqlSession session = null;
try{
session = MyBatisUtils.openSession();
List<Goods> List = session.selectList("goods.selectALL");
//打印表結(jié)果
for(Goods g: list){
System.out.printin(g.getTitle());
}
}catch(Exception e){
throw e;
}finally{
MyBatisUtils.closeSession(session);
}
}演示查詢結(jié)果:

到此這篇關(guān)于MyBatis框架實(shí)現(xiàn)一個簡單的數(shù)據(jù)查詢操作的文章就介紹到這了,更多相關(guān)MyBatis 數(shù)據(jù)查詢操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot中整合PageHelper實(shí)現(xiàn)分頁功能詳細(xì)步驟
在Spring Boot項(xiàng)目中整合PageHelper并實(shí)現(xiàn)分頁查詢功能的全部步驟,通過以上配置和代碼,我們可以輕松地實(shí)現(xiàn)數(shù)據(jù)庫分頁查詢,提高了開發(fā)效率并改善了用戶體驗(yàn),感興趣的朋友跟隨小編一起看看吧2024-05-05
淺析Spring Boot中的spring-boot-load模塊
spring-boot-loader模塊允許我們使用java -jar archive.jar運(yùn)行包含嵌套依賴jar的jar或者war文件,它提供了三種類啟動器。下面通過本文給大家介紹spring-boot-load模塊的相關(guān)知識,感興趣的朋友一起看看吧2018-01-01
Spring Boot實(shí)現(xiàn)STOMP協(xié)議的WebSocket的方法步驟
這篇文章主要介紹了Spring Boot實(shí)現(xiàn)STOMP協(xié)議的WebSocket的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
java學(xué)生信息管理系統(tǒng)MVC架構(gòu)詳解
這篇文章主要為大家詳細(xì)介紹了java學(xué)生信息管理系統(tǒng)MVC架構(gòu)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
kkFileView在線文件預(yù)覽與項(xiàng)目集成方式
用戶在GitHub和Gitee未找到.Jar包,需手動下載源碼編譯啟動項(xiàng)目;配置Java后臺文件上傳及預(yù)覽路徑;集成Vue實(shí)現(xiàn)預(yù)覽效果2025-08-08
SpringMvc靜態(tài)資源訪問實(shí)現(xiàn)方法代碼實(shí)例
這篇文章主要介紹了SpringMvc靜態(tài)資源訪問實(shí)現(xiàn)方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
基于Java?Agent的premain方式實(shí)現(xiàn)方法耗時監(jiān)控問題
javaagent是在JDK5之后提供的新特性,也可以叫java代理,這篇文章主要介紹了基于Java?Agent的premain方式實(shí)現(xiàn)方法耗時監(jiān)控問題,需要的朋友可以參考下2022-10-10
使用mybatis-plus報(bào)錯Invalid bound statement (not found)錯誤
這篇文章主要介紹了使用mybatis-plus報(bào)錯Invalid bound statement (not found)錯誤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
IntelliJ IDEA 編輯器的全局搜索中使用正則表達(dá)式的操作方法
這篇文章主要介紹了IntelliJ IDEA 編輯器的全局搜索中使用正則表達(dá)式的相關(guān)知識,補(bǔ)充介紹了IDEA查找和替換實(shí)用正則,感興趣的朋友跟隨小編一起看看吧2024-01-01

