色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

解決mybatis一對(duì)多關(guān)聯(lián)查詢多條數(shù)據(jù)只顯示一條的問(wèn)題

瀏覽:58日期:2023-10-20 17:36:41

一對(duì)多,如果多個(gè)表字段名相同,要記住使用別名,否則多條數(shù)據(jù)只顯示一條

<resultMap type='com.example.demo.model.TuserModel' id='extendMapper'> <id column='id' property='id' /> <result column='user_name' property='userName' /> <result column='nick_name' property='nickName' /> <result column='avatar' property='avatar' /> <result column='email' property='email' /> <result column='signature' property='signature' /> <result column='create_time' property='createTime' /> <result column='update_time' property='updateTime' /> <result column='del_flag' property='delFlag' /> <collection property='tpluginModels' ofType='com.example.demo.model.TpluginModel' column='id'> <id column='pid' property='id' /> <result column='user_id' property='userId' /> <result column='name' property='name' /> <result column='icon' property='icon' /> <result column='vsersion' property='vsersion' /> <result column='tags' property='tags' /> <result column='description' property='description' /> <result column='bcreate_time' property='createTime' /> <result column='bupdate_time' property='updateTime' /> <result column='del_flag' property='delFlag' /> </collection> <!-- <collection property='tpluginModels' column='id' ofType='com.example.demo.model.TpluginModel' select='pluginByUid' /> -->

下列sql

<select resultMap='extendMapper'> select u.*,p.id as pid,p.user_id,p.name,p.icon,p.vsersion,p.tags,p.description,p.create_time as bcreate_time,p.update_time as bupdate_time,p.del_flag from t_user u LEFT JOIN t_plugin p ON u.id=p.user_id and u.del_flag=0 and p.del_flag=0 WHERE u.user_name LIKE CONCAT(’%’,#{name},’%’) OR u.nick_name LIKE CONCAT(’%’,#{name},’%’) </select>

補(bǔ)充知識(shí):MyBatis使用resultMap解決列名和屬性名不一致的問(wèn)題

resultType可以指定將查詢結(jié)果映射為pojo,但需要pojo的屬性名和sql查詢的列名一致方可映射成功。

如果sql查詢字段名和pojo的屬性名不一致,可以通過(guò)resultMap將字段名和屬性名作一個(gè)對(duì)應(yīng)關(guān)系 ,resultMap實(shí)質(zhì)上還需要將查詢結(jié)果映射到pojo對(duì)象中。

需求:查詢訂單表orders的所有數(shù)據(jù)

SELECT id,user_id,number,createtime,note FROM orders,這里的數(shù)據(jù)庫(kù)表user_id與pojo的Order對(duì)象中的userId不一致

orders表:

解決mybatis一對(duì)多關(guān)聯(lián)查詢多條數(shù)據(jù)只顯示一條的問(wèn)題

Order對(duì)象:

解決mybatis一對(duì)多關(guān)聯(lián)查詢多條數(shù)據(jù)只顯示一條的問(wèn)題

OrderMapper.xml配置:

其中注釋掉了另一種使用數(shù)據(jù)庫(kù)別名解決列名和屬性名不一致的問(wèn)題

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE mapperPUBLIC '-//mybatis.org//DTD Mapper 3.0//EN''http://mybatis.org/dtd/mybatis-3-mapper.dtd'><mapper namespace='com.sea.crm.mapper.OrderMapper'> <!-- 使用as 給列取別名解決類名和屬性名不一致的情況 --> <!--<select resultType='Order'> SELECT id,user_id as userId,number,createtime,note FROM orders </select> --> <!-- 使用resultMap解決列名和屬性名不一致的情況 --> <!-- 配置一個(gè)resultMap映射列和屬性 --> <resultMap type='Order' id='orderMap'> <!-- id:設(shè)置ResultMap的id --> <!-- 定義主鍵 ,非常重要。如果是多個(gè)字段,則定義多個(gè)id --> <!-- property:主鍵在pojo中的屬性名 --> <!-- column:主鍵在數(shù)據(jù)庫(kù)中的列名 --> <id column='id' property='id' /> <!-- 映射其他普通列 --> <result column='user_id' property='userId' /> <result property='number' column='number' /> <result property='createtime' column='createtime' /></resultMap> <!-- 方法的返回值可以使用 --> <select resultMap='orderMap'> SELECT id,user_id ,number,createtime,note FROM orders </select></mapper>

單元測(cè)試:

public class OrderMapperTest { SqlSessionFactory factory = null; private OrderMapper orderMapper = null; @Before public void testInit() { // 1. 創(chuàng)建SqlSessionFactoryBuilder對(duì)象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); // 2. 加載SqlMapConfig.xml配置文件 // /20181013_mybatis/config/SqlMapConfig.xml InputStream in = MyBatisTest.class.getResourceAsStream('/SqlMapConfig.xml'); // 3. 創(chuàng)建SqlSessionFactory對(duì)象 factory = builder.build(in); } @Test public void testqueryAll() { SqlSession session = factory.openSession(); OrderMapper orderMapper = session.getMapper(OrderMapper.class); List<Order> orders = orderMapper.queryAll(); System.out.println(orders); } }

以上這篇解決mybatis一對(duì)多關(guān)聯(lián)查詢多條數(shù)據(jù)只顯示一條的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

相關(guān)文章:
主站蜘蛛池模板: 一级生性活免费视频 | 特级毛片a级毛免费播放 | 亚洲一区二区三区免费视频 | 精品91自产拍在线 | 国产中文久久精品 | 在线观看一区二区三区四区 | 欧美一级特黄特色大片 | 九九视频只有精品六 | 精品欧美成人bd高清在线观看 | 久久国产精品成人免费 | 4438全国最大成人网视频 | 久爱午夜精品免费视频 | 精品国产三级在线观看 | 99精品这里只有精品高清视频 | 日本免费高清一区 | 免费国产成人高清视频网站 | 亚洲国产欧美日韩精品一区二区三区 | 国产亚洲毛片在线 | 在线视频免费国产成人 | 精品一区二区三区免费站 | 亚洲欧洲日产国产 最新 | 国产高清一区二区三区免费视频 | 美国一级毛片oo | 在线观看视频国产 | 久久综合狠狠综合久久综合88 | 免费毛片儿 | 高清在线亚洲精品国产二区 | 最新最好看免费毛片基地 | 99久久精品久久久久久清纯 | 亚洲精品不卡午夜精品 | 成人免费网站视频 | 91久久综合九色综合欧美98 | 午夜人成 | 日日摸夜夜搂人人要 | 国产成人精品日本亚洲语音2 | 欧美一级在线视频 | 精品国产免费第一区二区三区日韩 | 久久久久欧美精品网站 | 欧美一级在线免费观看 | 中文在线三级中文字幕 | 亚洲国产成人精品91久久久 |