成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Mybatis查詢(xún)語(yǔ)句返回對(duì)象和泛型集合的操作

瀏覽:29日期:2023-10-18 13:35:13
Mybatis查詢(xún)語(yǔ)句返回對(duì)象和泛型集合EmpMapper映射接口:

package cn.et.mybatis.lesson03; import java.util.List; import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select; public interface EmpMapper { /** * 查詢(xún)單條數(shù)據(jù), * 每一列的列名都會(huì)去Emp實(shí)體類(lèi)中去匹配對(duì)應(yīng)的屬性 * 匹配時(shí)會(huì)把二邊都轉(zhuǎn)為小字母進(jìn)行匹配 * 匹配成功就會(huì)調(diào)用Emp實(shí)體類(lèi)中對(duì)象的set方法 * * 如果列名和Emp的屬性匹配不上, * 1.為查詢(xún)結(jié)果的列設(shè)置一個(gè)別名 * 2.將列名ename和屬性ename1建立一個(gè)關(guān)系 單個(gè)屬性建立關(guān)系 * * column是不區(qū)分大小寫(xiě)的,property是區(qū)分大小寫(xiě)的 * @return */ @Results( { @Result(column='ename',property='ename1'), @Result(column='empNo',property='empNo1'), @Result(column='sal',property='sal1'), } ) @Select('select * from emp where empno=#{0}') public Emp queryEmpByEmpNo(String empNo); /** * 查詢(xún)出多條數(shù)據(jù),每一條數(shù)據(jù)都是一個(gè)Emp對(duì)象 * 每一列的列名都會(huì)去Emp實(shí)體類(lèi)中去匹配對(duì)應(yīng)的屬性 * 匹配時(shí)會(huì)把二邊都轉(zhuǎn)為小字母進(jìn)行匹配 * 匹配成功就會(huì)調(diào)用Emp實(shí)體類(lèi)中對(duì)象的set方法 * 如果沒(méi)有一條數(shù)據(jù)匹配成功,則不會(huì)創(chuàng)建Emp對(duì)象 * @param empNo * @return */ @Results( { @Result(column='ename',property='ename1'), @Result(column='empNo',property='empNo1'), @Result(column='sal',property='sal1'), } ) @Select('select * from emp') public List<Emp> queryEmp(); }測(cè)試類(lèi):

package cn.et.mybatis.lesson03; import java.io.InputStream;import java.util.List; import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test; public class TestMybatis { public static SqlSession getSession(){ String resource = '/cn/et/mybatis/lesson03/mybatis.xml'; InputStream inputStream = TestMybatis.class.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //打開(kāi)會(huì)話(huà) SqlSession session = sqlSessionFactory.openSession(); return session; } public static void main(String[] args) { SqlSession session = getSession(); EmpMapper emp = session.getMapper(EmpMapper.class); Emp obj = emp.queryEmpByEmpNo('8000'); System.out.println(obj); } @Test public void test(){ SqlSession session = getSession(); EmpMapper emp = session.getMapper(EmpMapper.class); List<Emp> result = emp.queryEmp(); for (Emp emp2 : result) { System.out.println(emp2); } }}xml映射-----------

dept_mapper.xml:

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd'> <!-- 接口映射 namespace必需跟接口的全名一致 --><mapper namespace='cn.et.mybatis.lesson03.resultEntityXml.DeptMapper'> <!-- column是不區(qū)分大小寫(xiě)的,property是區(qū)分大小寫(xiě)的 --> <resultMap type='cn.et.mybatis.lesson03.resultEntityXml.Dept' id='myDept'> <result column='deptno' property='deptno1'/> <result column='dname' property='dname1'/> <result column='loc' property='loc1'/> </resultMap> <select resultMap='myDept'> select * from dept where deptno=#{0} </select> </mapper>

測(cè)試類(lèi):

package cn.et.mybatis.lesson03.resultEntityXml; import java.io.InputStream; import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestMybatis { public static SqlSession getSession(){ String resource = '/cn/et/mybatis/lesson03/mybatis.xml'; InputStream inputStream = TestMybatis.class.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //打開(kāi)會(huì)話(huà) SqlSession session = sqlSessionFactory.openSession(); return session; } public static void main(String[] args) { SqlSession session = getSession(); DeptMapper dept = session.getMapper(DeptMapper.class); Dept result = dept.queryDept('10'); System.out.println(result); } }mybatis查詢(xún)結(jié)果集有泛型屬性時(shí)可能出現(xiàn)的問(wèn)題問(wèn)題:

當(dāng)接收結(jié)果為map或者對(duì)象的屬性為泛型時(shí):

@Datapublic class GenericKeyValueVo<K,V> { private K key; private V value;}

這時(shí)候如果直接將resultType指向?qū)ο笕薅Q(chēng)時(shí),可能會(huì)出現(xiàn)問(wèn)題。因?yàn)槿绻樵?xún)結(jié)果的某個(gè)字段大于1000會(huì)出現(xiàn)','如:1,000.56 。mybatis不會(huì)報(bào)錯(cuò),因?yàn)檫@個(gè)對(duì)象的這個(gè)屬性為泛型,可以接收。而當(dāng)獲取結(jié)果之后即使定義接收的變量類(lèi)型為:

Mybatis查詢(xún)語(yǔ)句返回對(duì)象和泛型集合的操作

第二個(gè)屬性也會(huì)存入String類(lèi)型的值。后續(xù)再處理可能就會(huì)出現(xiàn)將string轉(zhuǎn)為double數(shù)據(jù)類(lèi)型轉(zhuǎn)換錯(cuò)誤。

解決方法:

定義一個(gè)resultMap,指明javaType

<resultMap type='com.meinergy.mkting.commons.entity.wholesale.vo.GenericKeyValueVo'><result column='key' property='key' javaType='java.lang.String'/><result column='value' property='value' javaType='java.lang.Double'/> </resultMap>

再用一個(gè)convert函數(shù)規(guī)范查詢(xún)結(jié)果格式

convert(FORMAT(queryResult, decimal(12, 2))

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲一区在线电影| 夜夜爽av福利精品导航 | 国产日韩欧美| 久久伊99综合婷婷久久伊| 国产suv一区二区三区88区| 欧美视频精品在线| 日韩国产精品91| 久久久久一区二区| 日韩精品视频网| 老司机久久99久久精品播放免费| 亚洲va天堂va国产va久| 亚洲欧美日韩国产一区二区| 亚洲精品国产品国语在线app| 激情久久久久| 日韩毛片一二三区| 国产精品v欧美精品v日本精品动漫| 337p日本欧洲亚洲大胆精品| 成人网在线免费视频| 欧美一区二区性放荡片| 国产精品一区二区在线观看不卡 | 欧美国产日韩精品免费观看| av不卡一区二区三区| 精品国产乱码久久久久久浪潮| 成人99免费视频| 精品国产乱码久久| 99久久综合色| 国产午夜精品福利| 欧美精品aa| 国产精品传媒视频| 亚洲午夜精品国产| 亚洲精选视频在线| 米奇777在线欧美播放| 日韩高清在线观看| 欧美日韩视频在线一区二区| 国产精品小仙女| 精品国产乱码久久久久久蜜臀 | 调教+趴+乳夹+国产+精品| 免播放器亚洲| 香蕉av福利精品导航| 一本一道久久a久久精品| 蜜桃久久久久久| 4438x亚洲最大成人网| 国产成人免费9x9x人网站视频| 精品国产乱码久久久久久1区2区| 午夜精品视频| 亚洲人成伊人成综合网小说| 懂色av一区二区三区蜜臀| 26uuu色噜噜精品一区| 91蝌蚪porny| 亚洲男同1069视频| 亚洲一区高清| 韩国午夜理伦三级不卡影院| 亚洲精品在线三区| 亚洲激情啪啪| 日本不卡的三区四区五区| 欧美日韩精品电影| 成人毛片视频在线观看| 国产精品久久久久久久浪潮网站| 亚洲永久字幕| 国产乱码精品1区2区3区| 国产日韩欧美在线一区| 国产精品久久久一区二区三区| 捆绑紧缚一区二区三区视频| 亚洲精品一区二区精华| 亚洲小说欧美另类婷婷| 日韩av一区二| 欧美xxx久久| 99国产一区| 韩国av一区二区| 中文字幕不卡在线观看| 久久综合中文| 成人毛片在线观看| 亚洲色图.com| 欧美日韩国产不卡| 国内精品视频在线播放| 免费一级欧美片在线观看| 2023国产精品| 亚洲综合二区| 国产成人精品免费网站| 日韩美女视频一区| 欧美日韩一区二区三区高清| 欧美人与禽猛交乱配| 视频在线观看国产精品| 精品国精品国产| 国产精品毛片一区二区三区| 国产精品1区2区3区| 国产精品亲子乱子伦xxxx裸| 色又黄又爽网站www久久| 欧美一区激情| 日韩avvvv在线播放| 久久久久久麻豆| 久久一区精品| 91麻豆文化传媒在线观看| 视频一区在线播放| 亚洲精品在线免费播放| 久久亚洲午夜电影| 欧美成人在线免费观看| 日本特黄久久久高潮| 久久久久国产精品厨房| 麻豆av一区二区三区久久| 波多野结衣欧美| 亚洲bdsm女犯bdsm网站| 久久噜噜亚洲综合| 在线精品亚洲一区二区不卡| 韩国在线视频一区| 国产在线视频精品一区| 亚洲欧美日韩久久| 欧美成人vr18sexvr| 久久久成人网| 91麻豆.com| 久久99久久久久| 亚洲精品久久久蜜桃| 欧美情侣在线播放| 国产偷国产偷亚洲高清人白洁 | 无吗不卡中文字幕| 美女视频黄a大片欧美| 国产精品一区二区果冻传媒| 亚洲精品影视| 国产午夜精品一区二区三区四区| 精品一区二区免费在线观看| 国产嫩草一区二区三区在线观看 | 在线观看亚洲| 国产精品久久久久三级| 成人免费av资源| 91麻豆精品国产91久久久使用方法 | www.视频一区| 日韩一区二区在线免费观看| 日韩电影免费在线| 一本一道波多野结衣一区二区| 亚洲成av人片一区二区三区| 国产手机视频一区二区| 午夜精品在线视频一区| 久久久精品国产一区二区三区| 亚洲最新视频在线播放| 亚洲国产综合在线看不卡| 久久久久久99久久久精品网站| 成人av资源网站| 久久久久久久电影| 欧美极品一区| 亚洲精品国产第一综合99久久| 午夜亚洲激情| 日韩精品成人一区二区在线| 久久综合九色| 国产精品88av| 国产精品色噜噜| 美日韩在线观看| 国精产品一区一区三区mba视频| 51精品国自产在线| 国产一区日韩欧美| 亚洲黄色性网站| 在线视频中文字幕一区二区| 国产精品亚洲专一区二区三区| 日韩精品在线一区二区| 欧美久久久久久| 亚洲国产美女搞黄色| 欧美日韩精品欧美日韩精品一 | 亚洲一区视频在线| 色狠狠一区二区三区香蕉| 免费人成精品欧美精品| 日韩丝袜美女视频| 国产精品地址| 日一区二区三区| 欧美zozozo| 国产日韩欧美| 麻豆精品一二三| 国产精品美女视频| 欧美色中文字幕| 黄色国产精品一区二区三区| 日本亚洲最大的色成网站www| 精品国偷自产国产一区| 免费视频久久| 91影院在线观看| 另类综合日韩欧美亚洲| 久久婷婷久久一区二区三区| 色诱视频网站一区| 精品成人一区| 国产91丝袜在线播放九色| 亚洲自拍偷拍网站| 久久久久久夜精品精品免费| 欧美午夜精品一区二区三区| 欧美日韩一区在线播放 | 国产亚洲综合在线| 91精品国产91热久久久做人人| 国产尤物精品| 成人av动漫网站| 六月丁香综合在线视频| 亚洲日本乱码在线观看| 精品国产成人系列| 色香色香欲天天天影视综合网| 欧美午夜视频在线| www..com久久爱| 国产成人8x视频一区二区| 美女一区二区三区在线观看| 夜夜精品浪潮av一区二区三区| 欧美国产精品一区二区| 2020国产精品| 日韩女同互慰一区二区| 在线电影一区二区三区| 91福利国产精品| 国产欧美亚洲一区|