成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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国内精品久久久久久久
成人免费va视频| 久久女同精品一区二区| 2021国产精品久久精品| 激情综合网最新| 久久一区二区精品| 亚洲影院久久精品| 亚洲精品人人| 亚洲视频1区2区| 尹人成人综合网| 中文字幕视频一区二区三区久| 欧美91大片| 亚洲国产精品精华液2区45| aaa国产一区| 日韩精品在线一区二区| 久久99久久99小草精品免视看| 日本韩国视频一区二区| 日本欧美一区二区三区乱码| 在线一区二区三区四区五区| 青青草97国产精品免费观看| 91精品福利在线| 男人的j进女人的j一区| 在线一区二区三区做爰视频网站| 青青草视频一区| 欧美日韩三级一区二区| 国产一区二区三区在线看麻豆| 欧美精品一二三区| 国产精品一区二区三区99| 欧美日韩国产片| 国产成人亚洲综合a∨婷婷| 欧美一区三区二区| 福利一区福利二区| 精品国产免费人成电影在线观看四季 | 欧美日韩亚洲不卡| 国内精品自线一区二区三区视频| 91精品综合久久久久久| 国产成人av电影在线播放| 欧美一区午夜视频在线观看| 福利一区二区在线| 久久久精品欧美丰满| 狠狠爱成人网| 亚洲一区二区三区精品在线| 在线观看成人小视频| 韩国av一区二区三区四区| 正在播放一区二区| 成人av网在线| 国产精品电影院| 亚洲自啪免费| 精品一区二区国语对白| 日韩精品一区二区三区视频| 欧美影视一区| 亚洲精品乱码久久久久久| 色婷婷av一区二区三区大白胸| 国产精一品亚洲二区在线视频| 精品国产精品网麻豆系列| 欧美精选一区| 亚洲综合丁香婷婷六月香| 欧美性猛交xxxxxx富婆| 懂色一区二区三区免费观看| 中文一区二区完整视频在线观看| 亚洲久久视频| 精品一区二区三区免费播放| 久久日韩精品一区二区五区| 一本一本久久| 国内精品久久久久影院色| 国产日韩欧美在线一区| 亚洲免费影院| 国产白丝精品91爽爽久久| 欧美国产综合一区二区| 羞羞视频在线观看欧美| 丰满岳乱妇一区二区三区| 国产精品少妇自拍| 小嫩嫩精品导航| 国内外成人在线| 欧美国产欧美综合| 久久综合精品一区| 99精品视频在线观看免费| 亚洲综合在线电影| 制服丝袜亚洲色图| 欧美亚韩一区| 免费高清视频精品| 久久精品人人爽人人爽| 久久先锋影音| 91热门视频在线观看| 五月天欧美精品| 亚洲精品在线电影| 亚洲自拍高清| 成人激情免费视频| 亚洲日本在线视频观看| 欧美精品久久一区| 极品尤物久久久av免费看| 久久福利资源站| 中文字幕亚洲一区二区av在线| 欧美亚洲动漫制服丝袜| 国产精品v一区二区三区| 日韩在线a电影| 久久久久久久久99精品| 欧美在线小视频| 一区久久精品| 国产99精品视频| 亚洲一区二区偷拍精品| 欧美成人国产一区二区| 国产精品视频免费一区| 丁香五精品蜜臀久久久久99网站| 亚洲午夜成aⅴ人片| 日韩欧美国产一区在线观看| 另类图片国产| 欧美视频日韩| 国产乱码一区二区三区| 亚洲一二三四久久| 精品国产精品一区二区夜夜嗨| 一本色道久久综合精品竹菊| 韩国av一区| 国产成人精品www牛牛影视| 亚洲成在人线在线播放| 国产免费久久精品| 91精品国产一区二区| 久久精品免费| 好吊日精品视频| 国产jizzjizz一区二区| 午夜精品国产更新| 中文字幕巨乱亚洲| 日韩一区二区影院| 91久久精品国产91性色tv | 欧美亚洲自拍偷拍| 亚洲精品影院| 91香蕉视频mp4| 国产一区二区三区精品欧美日韩一区二区三区 | 在线亚洲欧美| 成人av资源在线观看| 美女视频免费一区| 一区二区三区四区激情| 国产婷婷色一区二区三区在线| 欧美剧情电影在线观看完整版免费励志电影 | 久久婷婷国产综合国色天香| 欧美性一二三区| 99精品欧美| 欧美精品播放| 成人精品小蝌蚪| 久久99精品国产麻豆不卡| 亚洲一区二区免费视频| 欧美激情一区二区三区在线| 日韩精品最新网址| 欧美精品九九99久久| 91福利社在线观看| 日韩国产在线观看一区| 亚洲妇熟xx妇色黄| 亚洲精品国产第一综合99久久| 中文一区在线播放| 国产日本亚洲高清| 欧美成人vps| 91精品国产日韩91久久久久久| 欧美性猛交xxxx乱大交退制版| 久久精品一二三区| 亚洲欧洲午夜| 国产精品99一区二区| 欧美1区视频| 99久久久精品| 不卡一区二区在线| 成年人国产精品| 成人精品一区二区三区四区| 国产精品一二三区| 国产毛片精品国产一区二区三区| 麻豆91在线观看| 日韩在线播放一区二区| 婷婷成人激情在线网| 天堂午夜影视日韩欧美一区二区| 亚洲一区二区高清| 亚洲午夜在线视频| 亚洲免费色视频| 亚洲日本青草视频在线怡红院| 国产精品夫妻自拍| 中文字幕在线一区| 综合网在线视频| 亚洲视频一区二区在线观看| 中文字幕亚洲不卡| 亚洲欧洲www| 亚洲男人的天堂在线观看| 综合亚洲深深色噜噜狠狠网站| 亚洲欧洲日本在线| 亚洲乱码一区二区三区在线观看| 亚洲欧美另类久久久精品2019| 亚洲精品中文字幕在线观看| 椎名由奈av一区二区三区| 亚洲欧美在线另类| 国产精品久久久久一区二区三区| 中日韩免费视频中文字幕| 国产精品美女久久福利网站| 国产精品久久久久久久久快鸭 | 中文精品视频| 亚洲欧美日韩国产一区二区| 另类激情亚洲| 欧洲精品一区二区三区在线观看| 欧美羞羞免费网站| 91精品综合久久久久久| 日韩精品一区二区三区老鸭窝| 精品美女在线播放| 中文字幕国产一区二区| 亚洲三级在线播放| 亚洲成人1区2区| 麻豆成人91精品二区三区|