电商项目day10-1(Spring-data-Solr入门demo)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangwei_620/article/details/85038871

一.重新创建一个项目用于导入数据库的数据到solr索引库中

1.添加相关jar包

2.配置相关的配置文件

3.编写基于junit的测试文件

4.编写scheme.xml中配置的域字段与实体的映射关系

 @Field
    private Long id;
    @Field("item_title")
    private String title;

    private String sellPoint;
    @Field("item_price")
    private BigDecimal price;

    private Integer stockCount;

    private Integer num;

    private String barcode;
    @Field("item_image")
    private String image;

    private Long categoryid;

    private String status;

    private Date createTime;
    @Field("item_updatetime")
    private Date updateTime;

    private String itemSn;

    private BigDecimal costPirce;

    private BigDecimal marketPrice;

    private String isDefault;
    @Field("item_goodsid")
    private Long goodsId;

    private String sellerId;

    private String cartThumbnail;
    @Field("item_category")
    private String category;
    @Field("item_brand")
    private String brand;

    private String spec;
    @Field("item_seller")
    private String seller;

二.增删改查以及分页,条件查询


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext-solr.xml")
public class SolrTest {

    @Autowired
    private SolrTemplate solrTemplate;

    /**
     * 添加商品到商品库
     * 修改都是调用这个方法  saveBean方法
     */
    @Test
    public void addTest(){

        TbItem item = new TbItem();
        item.setId(1L);
        item.setTitle("苹果maxs   移动4G  64G");
        item.setSeller("苹果旗舰店");
        item.setBrand("苹果");
        solrTemplate.saveBean(item);
        //必须提交
        solrTemplate.commit();
    }

    /**
     * 通过id查询
     */
    @Test
    public void findByIdTest(){

        TbItem byId = solrTemplate.getById(1L, TbItem.class);
        System.out.println(byId.getId()+" " +byId.getTitle()+" "+byId.getBrand());
    }
    /**
     * 通过id删除
     */
    @Test
    public void deleteTest(){

        solrTemplate.deleteById("1");
        solrTemplate.commit();
    }
    /**
     * 删除所有数据
     */
    @Test
    public void deleteAllTest(){

        SolrDataQuery query = new SimpleQuery("*:*");
        solrTemplate.delete(query);
        solrTemplate.commit();
    }
    /**
     * 批量添加数据
     */
    @Test
    public void addAllTest(){
        ArrayList list = new ArrayList();
        for (long i = 1; i <= 100; i++) {
            TbItem item = new TbItem();
            item.setId(i);
            item.setTitle(i+"苹果maxs   移动4G  64G");
            item.setSeller("苹果"+i+"号旗舰店");
            item.setBrand("苹果");
            list.add(item);
            //solrTemplate.saveBean(item);
            //必须提交
           // solrTemplate.commit();
        }
        solrTemplate.saveBeans(list);
        solrTemplate.commit();
    }
    /**
     * 分页查询
     */
    @Test
    public void findPageTest(){
        //设置查询对象
        Query query = new SimpleQuery("*:*");
        //设置分页条件
        query.setOffset(2);//设置分页查询起始值, 默认值 0 ,从第一天开始
        query.setRows(5);//每页查询记录数
        ScoredPage<TbItem> tbItems = solrTemplate.queryForPage(query, TbItem.class);
        System.out.println("总记录数:"+tbItems.getTotalElements());
        System.out.println("总页数"+tbItems.getTotalPages());
        //当前页数据列表
        List<TbItem> content = tbItems.getContent();
        for (TbItem item : content) {
            System.out.println(item.getId()+" "+item.getTitle()+" "+item.getBrand()+" "+item.getSeller());
        }
    }
    /**
     * 条件查询   需求查询  标题含有9    商家含有 5
     */
    @Test
    public void findMultilTest(){
        //设置查询对象   注意一定要有查询条件*:*
        Query query = new SimpleQuery("*:*");

        //构建查询条件
        //支持链式编程
        Criteria criteria = new Criteria("item_title").contains("9").and("item_seller").contains("5");
        //把构建好的查询对象赋值给查询对象
        query.addCriteria(criteria);
        ScoredPage<TbItem> tbItems = solrTemplate.queryForPage(query, TbItem.class);
        System.out.println("总记录数:"+tbItems.getTotalElements());
        System.out.println("总页数"+tbItems.getTotalPages());
        //当前页数据列表
        List<TbItem> content = tbItems.getContent();
        for (TbItem item : content) {
            System.out.println(item.getId()+" "+item.getTitle()+" "+item.getBrand()+" "+item.getSeller());
        }
    }


}

猜你喜欢

转载自blog.csdn.net/wangwei_620/article/details/85038871