109.Spark大手電子商取引プロジェクト-各地域の人気商品統計-結果データをMySQLに書き込む


目次
コード#コード#
AreaTop3Product.java
IAreaTop3ProductDAO.java
AreaTop3ProductDAOImpl.java
DAOFactory.java
AreaTop3ProductSpark.java
この記事では、各地域の人気商品の統計を記録します.結果データをMySQLに書き込みます.
コード#コード#
domain
AreaTop3Product.java
package graduation.java.domain;

/**
 * FileName: AreaTop3Product
 * Author:   hadoop
 * Email:    [email protected]
 * Date:     19-4-1   11:36
 * Description:
 *    top3    
 */
public class AreaTop3Product {

    private long taskid;
    private String area;
    private String areaLevel;
    private long productid;
    private String cityInfos;
    private long clickCount;
    private String productName;
    private String productStatus;

    public long getTaskid() {
        return taskid;
    }

    public void setTaskid(long taskid) {
        this.taskid = taskid;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getAreaLevel() {
        return areaLevel;
    }

    public void setAreaLevel(String areaLevel) {
        this.areaLevel = areaLevel;
    }

    public long getProductid() {
        return productid;
    }

    public void setProductid(long productid) {
        this.productid = productid;
    }

    public String getCityInfos() {
        return cityInfos;
    }

    public void setCityInfos(String cityInfos) {
        this.cityInfos = cityInfos;
    }

    public long getClickCount() {
        return clickCount;
    }

    public void setClickCount(long clickCount) {
        this.clickCount = clickCount;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductStatus() {
        return productStatus;
    }

    public void setProductStatus(String productStatus) {
        this.productStatus = productStatus;
    }

    @Override
    public String toString() {
        return "AreaTop3Product{" +
                "taskid=" + taskid +
                ", area='" + area + '\'' +
                ", areaLevel='" + areaLevel + '\'' +
                ", productid=" + productid +
                ", cityInfos='" + cityInfos + '\'' +
                ", clickCount=" + clickCount +
                ", productName='" + productName + '\'' +
                ", productStatus='" + productStatus + '\'' +
                '}';
    }
}

dao
IAreaTop3ProductDAO.java
package graduation.java.dao;

import graduation.java.domain.AreaTop3Product;

import java.util.List;

/**
 * FileName: IAreaTop3ProductDAO
 * Author:   hadoop
 * Email:    [email protected]
 * Date:     19-4-1   11:39
 * Description:
 */
public interface IAreaTop3ProductDAO {
    /**
     *    top3      msqyl DAO
     * @param areaTop3Products
     */
    void insertBatch(List areaTop3Products);
}

impl
AreaTop3ProductDAOImpl.java
package graduation.java.impl;

import graduation.java.dao.IAreaTop3ProductDAO;
import graduation.java.domain.AreaTop3Product;
import graduation.java.jdbc.JDBCHelper;
import org.netlib.lapack.Iparmq;

import java.util.ArrayList;
import java.util.List;

/**
 * FileName: AreaTop3ProductDAOImp
 * Author:   hadoop
 * Email:    [email protected]
 * Date:     19-4-1   11:41
 * Description:
 *    top3    DAO   
 */
public class AreaTop3ProductDAOImp  implements IAreaTop3ProductDAO {
    @Override
    public void insertBatch(List areaTop3Products) {
        String sql = "insert into area_top3_product values(?,?,?,?,?,?,?,?)";
        List paramList = new ArrayList();
        for (AreaTop3Product areaTop3Product: areaTop3Products){
            Object[] param = new Object[8];

            param[0]= areaTop3Product.getTaskid();
            param[1] = areaTop3Product.getArea();
            param[2] = areaTop3Product.getAreaLevel();
            param[3] = areaTop3Product.getProductid();
            param[4] = areaTop3Product.getCityInfos();
            param[5] = areaTop3Product.getClickCount();
            param[6] = areaTop3Product.getProductName();
            param[7] = areaTop3Product.getProductStatus();

            paramList.add(param);
        }


        JDBCHelper jdbcHelper = JDBCHelper.getInstance();
        jdbcHelper.executeBatch(sql,paramList);

    }
}

factory
DAOFactory.java
 /**
     *   top3      DAO
     * @return
     */
    public static AreaTop3ProductDAOImp getAreaTop3ProductDAO(){
        return new AreaTop3ProductDAOImp();
    }

spark.product
AreaTop3ProductSpark.java
    /**
     *          top3      mysql 
     * @param taskid
     * @param rows
     */
    private static void persistAreaTop3Product(long taskid, List rows) {
        List areaTop3Products = new ArrayList();

        for (Row row:rows){
            AreaTop3Product areaTop3Product = new AreaTop3Product();
            areaTop3Product.setTaskid(taskid);
            areaTop3Product.setArea(row.getString(0));
            areaTop3Product.setAreaLevel(row.getString(1));
            areaTop3Product.setProductid(row.getLong(2));
            areaTop3Product.setClickCount(Long.valueOf(String.valueOf(row.get(3))));
            areaTop3Product.setCityInfos(row.getString(4));
            areaTop3Product.setProductName(row.getString(5));
            areaTop3Product.setProductStatus(row.getString(6));
            areaTop3Products.add(areaTop3Product);
        }

        IAreaTop3ProductDAO areaTop3ProductDAO = DAOFactory.getAreaTop3ProductDAO();
        areaTop3ProductDAO.insertBatch(areaTop3Products);

    }