当前位置: 首页 > wzjs >正文

安县移动网站建设短视频营销方式

安县移动网站建设,短视频营销方式,一般做网站空间大概多少钱,最火wordpress主题在MyBatis注解式开发里,处理复杂的关联查询可通过多种方式,本文将结合实际场景,详细介绍几种常见的处理方法。 本文目录 1. 使用 Results 和 Result注解进行手动映射2. 使用 SelectProvider动态生成 SQL 1. 使用 Results 和 Result注解进行手…

        在MyBatis注解式开发里,处理复杂的关联查询可通过多种方式,本文将结合实际场景,详细介绍几种常见的处理方法。

本文目录

      • 1. 使用 @Results 和 @Result注解进行手动映射
      • 2. 使用 @SelectProvider动态生成 SQL

1. 使用 @Results 和 @Result注解进行手动映射

当涉及到关联查询时,数据库表的字段和实体类的属性可能无法自动映射,这时可以使用 @Results@Result 注解手动指定映射关系。

假设有 Order(订单)和 Product(商品)两个实体,一个订单可以包含多个商品,需要查询订单信息并关联查询出商品信息。

实体类定义:

// Order 类
@Data
public class Order {private Long id;private String orderNo;private List<Product> products;
}// Product 类
@Data
public class Product {private Long id;private String name;private double price;
}

Mapper接口:

import org.apache.ibatis.annotations.*;
import java.util.List;@Mapper
public interface OrderMapper {@Select("SELECT o.id, o.order_no, p.id as product_id, p.name as product_name, p.price as product_price " +"FROM orders o " +"JOIN order_items oi ON o.id = oi.order_id " +"JOIN products p ON oi.product_id = p.id " +"WHERE o.id = #{orderId}")@Results({@Result(property = "id", column = "id"),@Result(property = "orderNo", column = "order_no"),@Result(property = "products", javaType = List.class,many = @Many(select = "com.shop.mapper.ProductMapper.getProductsByOrderId"))})Order getOrderWithProducts(Long orderId);
}// ProductMapper 接口
@Mapper
public interface ProductMapper {@Select("SELECT * FROM products WHERE id IN (SELECT product_id FROM order_items WHERE order_id = #{orderId})")List<Product> getProductsByOrderId(Long orderId);
}

@Results 注解用于手动指定结果集的映射关系。
@Result 注解中,property 表示实体类的属性名,column 表示数据库表的列名。
@Many 注解用于处理一对多的关联关系,select 属性指定了关联查询的方法。



2. 使用 @SelectProvider动态生成 SQL

对于复杂的关联查询,SQL 语句可能会根据不同的条件动态变化,这时可以使用 @SelectProvider 注解动态生成 SQL。比如,如果需要根据用户输入的条件,动态查询订单及其关联的商品信息。

Mapper接口:

import org.apache.ibatis.annotations.*;
import java.util.List;@Mapper
public interface OrderMapper {@SelectProvider(type = OrderSqlProvider.class, method = "getOrderWithProductsSql")@Results({@Result(property = "id", column = "id"),@Result(property = "orderNo", column = "order_no"),@Result(property = "products", javaType = List.class,many = @Many(select = "com.example.shop.ProductMapper.getProductsByOrderId"))})Order getOrderWithProductsByCondition(@Param("orderId") Long orderId, @Param("productName") String productName);
}// 动态SQL提供类
class OrderSqlProvider {public String getOrderWithProductsSql(@Param("orderId") Long orderId, @Param("productName") String productName) {StringBuilder sql = new StringBuilder("SELECT o.id, o.order_no, p.id as product_id, p.name as product_name, p.price as product_price " +"FROM orders o " +"JOIN order_items oi ON o.id = oi.order_id " +"JOIN products p ON oi.product_id = p.id " +"WHERE 1 = 1");if (orderId != null) {sql.append(" AND o.id = #{orderId}");}if (productName != null && !productName.isEmpty()) {sql.append(" AND p.name LIKE CONCAT('%', #{productName}, '%')");}return sql.toString();}
}

@SelectProvider 注解指定了提供 SQL 语句的类和方法。
OrderSqlProvider 类中的 getOrderWithProductsSql 方法根据传入的参数动态生成 SQL 语句。


文章转载自:

http://2OwKENS8.zLxrg.cn
http://gy2WaWcF.zLxrg.cn
http://weNjnVPU.zLxrg.cn
http://VBUNdBXf.zLxrg.cn
http://hgNDT3iK.zLxrg.cn
http://NcNm1C4u.zLxrg.cn
http://qLQjZBtb.zLxrg.cn
http://rbiPfrpf.zLxrg.cn
http://5LtbXaIL.zLxrg.cn
http://0oQ54Ws8.zLxrg.cn
http://Vk9aNavQ.zLxrg.cn
http://UxubV2Jj.zLxrg.cn
http://bTWwAr5Z.zLxrg.cn
http://nVlRX3fc.zLxrg.cn
http://Q6SNlWln.zLxrg.cn
http://TW8GlzMh.zLxrg.cn
http://KgR3qO7Q.zLxrg.cn
http://rdJILsea.zLxrg.cn
http://byMsUzxF.zLxrg.cn
http://qh3QTvjc.zLxrg.cn
http://EAlh6ed1.zLxrg.cn
http://htBdHnFq.zLxrg.cn
http://bljaiptL.zLxrg.cn
http://1iYGNwma.zLxrg.cn
http://yiCuRjC2.zLxrg.cn
http://nfmHdJ6o.zLxrg.cn
http://0wbdCV3R.zLxrg.cn
http://QIiSYDVo.zLxrg.cn
http://cXPQYLGR.zLxrg.cn
http://uZXO7Eow.zLxrg.cn
http://www.dtcms.com/wzjs/680823.html

相关文章:

  • 模板网站的域名是什么意思设计素材网站推荐pin
  • 网站模板 茶叶响应式个人养老保险缴费标准
  • 贵卅省住房和城乡建设厅网站做模型的网站有哪些内容
  • 淘宝网做宝贝详情用哪个网站包商科技wordpress
  • WordPress5分钟建站威海德嬴网站建设
  • 长沙经开区建设局网站互动网门户网站建设
  • wordpress好用的地图关键词优化是什么意思
  • 介绍好的免费网站模板下载地址wordpress文章顶置
  • 建设网站审核游戏私人服务器搭建
  • ftp链接网站空间网站建设方面
  • 做网站外国的服务器母婴网站建设
  • 淮安建设工程协会网站查询系统企业网络安全管理制度和应急预案
  • 最简单的做网站怎样推广自己的视频号
  • php+做网站wordpress queryposts
  • 网站建设捌金手指花总二重庆软件制作
  • 做网站编辑需要什么文凭wordpress 自动抓取
  • 景德镇陶瓷企业网站建设谁能低价做网站支付接口
  • 创建网站大约多少钱2018网站怎么更换页面图片
  • 邢台做移动网站报价展示营销型网站
  • 苏州有哪些互联网企业企业网站做seo
  • 网站建设功能图微信开放平台注册
  • 备案网站电子照幕布wordpress视频教程 电驴
  • 网站开发和竞价网页制作需要会哪些
  • 山东省建设科技协会网站亳州做网站
  • 山东网站定制设计制作一个app的完整流程
  • 南宁市住房和城乡建设部网站网页设计与网站建设专业
  • 做网赌网站怎么推广短视频素材网
  • 网站建设需要多大的空间网站建设空间是指什么
  • 15个html5手机网站模板怎么搜索整个网站内容
  • dedecms导入网站wordpress 网页飘窗