mybatis实现使用原生的sql

博客介绍了Java开发中的操作,包括在相应xml文件中编写SQL查询语句,在对应的mapper文件添加方法,以及在业务层写逻辑,最后操作成功,并给出了转载来源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.相应的xml文件中

<select id="selectByCategories" resultType="map" parameterType="java.lang.String" >
${_parameter}
</select>

2.对应的mapper文件中添加下列方法

List<Map<String , Long>> selectByCategories(String sql);

3.在业务层写相应的逻辑

// 得到不同分类下的相同文章
	public List<ArticleInfo> getTheSameArticle(String args){

	  String[] arr = args.split(",");
	   int len=arr.length;
		String sql="select article_id from"
				+ " (select category_id,article_id from article_category WHERE category_id in ("+args
				+ ")  GROUP BY category_id,article_id)b GROUP BY article_id HAVING count(category_id)="+len;
		 System.out.println(sql);
		 List <Map<String, Long>> resultList=articleCategoryMapper.selectByCategories(sql );
		System.out.println(resultList);
		LinkedList<ArticleInfo> articleList=new LinkedList<>();
		for (int i=0;i<resultList.size();i++) {
			System.out.println(resultList.get(i));
			Map<String, Long> tempMap = resultList.get(i);	
			System.out.println(tempMap.get("article_id"));
			long id=tempMap.get("article_id");
		   articleList.add(getOneById(id));		
		}

		return articleList;
		   
		
			
		
	}

 成功。 

转载于:https://www.cnblogs.com/LULULI/p/10818029.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值