(转)淘淘商城系列——导入商品数据到索引库——dao层

(转)淘淘商城系列——导入商品数据到索引库——dao层

大家好,又见面了,我是全栈君。

http://blog.csdn.net/yerenyuan_pku/article/details/72889058

我们先来看看我们要导入数据的sql语句并且查看查询结果。 
(转)淘淘商城系列——导入商品数据到索引库——dao层
从上图可知我们需要从tb_item、tb_item_cat,、tb_item_desc三张表中查询数据。针对来自三张表的数据,我们最好使用一个pojo来接收这些数据,而且这个pojo还会作为查询结果的载体。因为服务层和表现层都会用到这个pojo,我们最好把它放到taotao-common工程的com.taotao.common.pojo包下。我们新建一个SearchItem类(记得该类要实现序列化,因为要进行网络传输),如下图所示。 
(转)淘淘商城系列——导入商品数据到索引库——dao层
price字段类型之所以定义为Long类型是为了避免使用浮点数类型(Float),价格精确到分,也就是由原来的以元单位的价格乘以100倍(数据库中的价格存储的都是以分为单位的价格)。 
由于我们要导入的数据来自于三张表,用逆向工程生成的代码已经解决不了问题了,需要我们手动来写Mapper文件。那么Mapper文件我们应该放到哪儿呢?可能有人认为应该放到taotao-manager-dao工程下,但是这其实是不太合理的,我们搜索服务只是引用taotao-manager-dao工程的一些东西,搜索服务的这个操作非常特殊,别的工程都用不着,因此我们放到taotao-manager-dao工程不太合适,我们直接放到taotao-search-service工程下会更合适。 
我们在taotao-search-service工程下新建一个”com.taotao.search.mapper”包,并在该包下新建一个ItemMapper接口,在接口中添加一个getItemList方法,如下图所示。 
(转)淘淘商城系列——导入商品数据到索引库——dao层
接下来我们把taotao-manager-dao工程下的某个mapper.xml文件拷贝一份到com.taotao.search.mapper包下并重命名为ItemMapper.xml,留下头部,<mapper></mapper>标签中其余的东西都删掉,并在mapper中定义一个sql语句,id为ItemMapper接口中方法的名字,resultType是我们定义的pojo类的全类名。 
(转)淘淘商城系列——导入商品数据到索引库——dao层
为了方便大家复制,现将ItemMapper.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" > <mapper namespace="com.taotao.search.mapper.ItemMapper"> <select id="getItemList" resultType="com.taotao.common.pojo.SearchItem"> SELECT a.id, a.title, a.sell_point, a.price, a.image, b.`name` category_name, c.item_desc FROM tb_item a LEFT JOIN tb_item_cat b ON a.cid = b.id LEFT JOIN tb_item_desc c ON a.id = c.item_id WHERE a.`status`=1 </select> </mapper>

 

这样,把商品数据导入到索引库中的Dao层代码编写完毕!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108430.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下netstat命令详解

    Linux下netstat命令详解一、介绍Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 二、输出信息描述执行netstat后输出如下:[root@sy-suz-srv51~]#netstatActiv…

    2022年5月7日
    44
  • pycharm 2021.11 激活码-激活码分享

    (pycharm 2021.11 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4M…

    2022年3月29日
    152
  • hdfs读写文件过程

    hdfs读写文件过程hdfs读写文件过程

    2022年4月23日
    44
  • amis学习系列之一:amis入门

    amis学习系列之一:amis入门amis是什么,是一个后端开发者开发前端的福音,我们看看他的介绍吧amisdocamis是一个低代码前端框架,它使用JSON配置来生成页面,可以减少页面开发工作量,极大提升效率。amis

    2022年8月2日
    16
  • vue 的双向绑定原理「建议收藏」

    vue 的双向绑定原理「建议收藏」vue采用“数据劫持”和“观察者模式(又叫做发布者-订阅者模式)”相结合的方式,通过Object.defineProperty()来劫持各个属性的setter、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。vue的双向绑定原理,分三步:第一步,“数据劫持”:vue用Object.defineProperty()方法实现数据劫持,为每个属性分配一个订阅者集合的管理数组dep; 第二步,“添加观察者”:在编译的时候在该属性的数组dep中添加订阅者,添加方式包括:v

    2022年8月31日
    4
  • pytorch最新版本_pytorch linear

    pytorch最新版本_pytorch linear1.应用importtorchimporttorch.nnasnnloss=nn.MSELoss()input=torch.tensor([1.0,1.0],requires_grad=True)target=torch.tensor([7.0,9.0])output=loss(input,target)#50output.backward()2.概念API类meansquarederror(squaredL2norm)CLASStor

    2022年9月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号