SpringBoot_逆向工程

编程入门 行业动态 更新时间:2024-10-26 18:21:33

SpringBoot_逆向<a href=https://www.elefans.com/category/jswz/34/1769783.html style=工程"/>

SpringBoot_逆向工程

文章目录

    • 商品分类管理
    • 逆向工程
    • Model
        • Brands
        • Goods
        • GoodsVo
    • Controller
        • BrandController
        • GoodsController
    • Service
        • BrandServiceImpl
        • GoodsServiceImpl
    • Dao
        • BrandsMapper
        • GoodsMapper
    • mapper.xml

商品分类管理

  1. 逆向工程创建Model实体类、Mapper接口、mapper.xml

  2. 初始化项目环境:

    • 配置实例类和表映射(通用Mapper)
    • 初始项目结构:创建controller、service
  3. 实现需求

    • 添加分类

    • 修改商品

    • 商品列表多条件查询:根据商品名称模糊查询、价格范围查询

    • 查询每人提成:展示销售人员ID、姓名、销售总金额、提成总金额

      1. 展示销售人员ID、姓名、销售总金额、提成总金额

      tab_user: uid username totalPrice commission

      1. 查询销售的商品对应的单价、提成比例
        SELECT
        sale.uid,
        sale.pid,
        sale.sale_num,
        p.sale_price,
        p.commission
        FROM tab_sale sale,tab_product p
        WHERE sale.pid = p.product_id
      2. 销售总金额:totalPrice:
        3号销售:售价* 单价 + 售价* 单价
        3,1000
        1,500
        2,600
      3. 提成总金额:commission
        3,500
        2,200
        1,150
      4. 把计算结果赋值销售人员

逆向工程

  1. 构建过程
//下载
git clone 
//进入解压目录
cd mybatis-generator-gui
//打包
mvn jfx:jar
cd target/jfx/app/
//运行可执行jar
java -jar mybatis-generator-gui.jar


将逆向工程生产的Model类和mapper接口、mapper.xml复制到项目中

注意:

1. model需要绑定对应的表,标注ID
  1. mapper接口:删除自动生成的单表CRUD方法,我们使用通用Mapper
    3. mapper.xml 注意namespace和mapper接口的路径,删除自动生成的单表CRUD方法,我们使用通用Mapper

Model

Brands

@Table(name = "tab_brands")
public class Brands implements Serializable {/*** 自增ID*/@Idprivate Integer brandid;/*** 品牌名称*/private String brandname;/*** 品牌图标*/private String brandimg;/*** 建立时间*/@JsonFormat(pattern="yyyy-MM-dd",timezone = "Hongkong")private Date createtime;/*** 删除标志 -1:删除 1:有效*/private Byte dataflag;/*** 品牌排序号*/private Integer sortno;/*** 品牌介绍*/private String branddesc;private List<Goods> goodsList;//get set...
}

Goods

@Table(name = "tab_goods")
public class Goods implements Serializable {/*** 自增ID*/@Idprivate Integer goodsId;/*** 商品编号*/private String goodsSn;/*** 商品名称*/private String goodsName;/*** 市场价*/private BigDecimal marketPrice;/*** 店铺价*/private BigDecimal shopPrice;/*** 商品总库存*/private Integer goodsStock;/*** 预警库存*/private Integer warnStock;/*** 是否上架*/private Byte isSale;/*** 是否新品*/private Byte isNew;/*** 上架时间*/private Date saleTime;/*** 创建时间*/private Date createTime;/*** 品牌ID*/private Integer brandId;private Brands brands;//get set...
}

GoodsVo

public class GoodsVo extends Goods {@DateTimeFormat(pattern = "yyyy-MM-dd")private Date createEndTime;@DateTimeFormat(pattern = "yyyy-MM-dd")private Date createStartTime;//get set...
}

Controller

BrandController

@CrossOrigin
@RestController
@RequestMapping("/brand")
public class BrandController {@AutowiredBrandService brandService;/*** 根据ID查询品牌* @param brandid* @return*/@GetMapping(value = "/{brandid}")public Brands selectOne(@PathVariable(value = "brandid") Integer brandid){Brands brand = brandService.selectByPrimaryKey(brandid);return brand;}/*** 多条件查询* @param brands* @return*/@GetMapping(value = "/list")public List<Brands> listBrands(Brands brands){List<Brands> brandsList = brandService.selectList(brands);return brandsList;}@PostMapping("/insert")public void insert(Brands brands){brandService.insertSelectTive(brands);}/*** 更新品牌* @param brands* @return*/@PutMappingpublic String update(Brands brands){brandService.updateSelecttive(brands);return "success";}/*** 一对多查询* 查查品牌和对应的商品* @param brandid* @return*/@GetMapping("/list/{brandid}")public Brands listBrandsAndGoods(@PathVariable("brandid") Integer brandid){return brandService.listBrandsAndGoods(brandid);}}

GoodsController

@RestController
@RequestMapping("/goods")
public class GoodsController {@AutowiredGoodsService goodsService;/*** 多条件查询* @param goodsVo* @return*/@CrossOrigin@PostMapping("/list")public List<Goods> productList(GoodsVo goodsVo){List<Goods> plist = goodsService.list(goodsVo);return plist;}/*** 多对一查询* 查询商品和对应的品牌* @param goodsid* @return*/@GetMapping("/selectOne")List<Goods> listGoodsAndBrand(Integer goodsid){return goodsService.listGoodsAndBrand(goodsid);}
}

Service

BrandServiceImpl

@Service
@Transactional
public class BrandServiceImpl implements BrandService {@ResourceBrandsMapper brandsMapper;/*** 根据主键查询* @param brandid* @return*/@Overridepublic Brands selectByPrimaryKey(Integer brandid) {return brandsMapper.selectByPrimaryKey(brandid);}/*** 多条件查询* @param brands* @return*/@Overridepublic List<Brands> selectList(Brands brands) {Example example = new Example(Brands.class);Example.Criteria criteria = example.createCriteria();//获取查询条件:goodsname  isSaleString brandname = brands.getBrandname();Byte dataflag = brands.getDataflag();//动态拼接查询条件if(brandname != null && !brandname.trim().equals("")){criteria.andLike("brandname","%"+brandname+"%");}if(dataflag == null){criteria.andEqualTo("dataflag",1);}//根据example查询List<Brands> brandsList = brandsMapper.selectByExample(example);return brandsList;}/*** 插入数据* @param brands*/@Overridepublic void insertSelectTive(Brands brands) {//初始化数据brands.setCreatetime(new Date());brands.setDataflag((byte) 1);brands.setSortno(10);brandsMapper.insertSelective(brands);}/*** 更新数据* @param brands*/@Overridepublic void updateSelecttive(Brands brands) {brandsMapper.updateByPrimaryKeySelective(brands);}/*** 一对多查询* @param brandid* @return*/@Overridepublic Brands listBrandsAndGoods(Integer brandid) {return brandsMapper.listBrandsAndGoods(brandid);}
}

GoodsServiceImpl

@Service
@Transactional
public class GoodsServiceImpl implements GoodsService {@ResourceGoodsMapper goodsMapper;/*** 多条件查询* @param goodsVo* @return*/@Overridepublic List<Goods> list(GoodsVo goodsVo) {String goodsName = goodsVo.getGoodsName();if(!StringUtils.isEmpty(goodsName)){goodsVo.setGoodsName("%"+goodsName+"%");}List<Goods> goodsList = goodsMapper.listByBoodsVo(goodsVo);return goodsList;}/*** 多对一查询* @param goodsid* @return*/@Overridepublic List<Goods> listGoodsAndBrand(Integer goodsid) {return goodsMapper.listGoodsAndBrand(goodsid);}
}

Dao

BrandsMapper

@org.apache.ibatis.annotations.Mapper
public interface BrandsMapper extends Mapper<Brands> {@Select("SELECT\n" +"\tbrandId,\n" +"\tbrandName,\n" +"\tbrandDesc,\n" +"\tcreateTime,\n" +"\tdataFlag,\n" +"\tsortNo\n" +"FROM tab_brands\n" +"WHERE brandId = #{brandid}")@Results({@Result(property = "goodsList",column = "brandId",many = @Many(select = "com.czxy.boot.dao.GoodsMapper.listByBrandId"))})Brands listBrandsAndGoods(Integer brandid);
}

GoodsMapper

@org.apache.ibatis.annotations.Mapper
public interface GoodsMapper extends Mapper<Goods> {List<Goods>  listByBoodsVo(GoodsVo goodsVo);@Select("SELECT \n" +"\tgoods_id,\n" +"\tgoods_sn,\n" +"\tgoods_name,\n" +"\tmarket_price,\n" +"\tshop_price,\n" +"\tgoods_stock,\n" +"\twarn_stock,\n" +"\tis_sale,\n" +"\tis_new,\n" +"\tsale_time,\n" +"\tcreate_time,\n" +"\tbrand_id\n" +"FROM tab_goods\n" +"WHERE goods_id = #{goodsid}")@Results({@Result(property ="brands",column = "brand_id",one = @One(select = "com.czxy.boot.dao.BrandsMapper.selectByPrimaryKey"))})List<Goods> listGoodsAndBrand(Integer goodsid);@Select("SELECT \n" +"\tgoods_id,\n" +"\tgoods_sn,\n" +"\tgoods_name,\n" +"\tmarket_price,\n" +"\tshop_price,\n" +"\tgoods_stock,\n" +"\twarn_stock,\n" +"\tis_sale,\n" +"\tis_new,\n" +"\tsale_time,\n" +"\tcreate_time,\n" +"\tbrand_id\n" +"FROM tab_goods\n" +"WHERE brand_id = #{brandid}")List<Goods> listByBrandId(Integer brandid);
}

mapper.xml

GoodsMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ".dtd">
<mapper namespace="com.czxy.boot.dao.GoodsMapper"><resultMap id="BaseResultMap" type="com.czxy.boot.model.Goods"><id column="goods_id" jdbcType="INTEGER" property="goodsId" /><result column="goods_sn" jdbcType="VARCHAR" property="goodsSn" /><result column="goods_name" jdbcType="VARCHAR" property="goodsName" /><result column="market_price" jdbcType="DECIMAL" property="marketPrice" /><result column="shop_price" jdbcType="DECIMAL" property="shopPrice" /><result column="goods_stock" jdbcType="INTEGER" property="goodsStock" /><result column="warn_stock" jdbcType="INTEGER" property="warnStock" /><result column="is_sale" jdbcType="TINYINT" property="isSale" /><result column="is_new" jdbcType="TINYINT" property="isNew" /><result column="sale_time" jdbcType="TIMESTAMP" property="saleTime" /><result column="create_time" jdbcType="TIMESTAMP" property="createTime" /><result column="brand_id" jdbcType="INTEGER" property="brandId" /></resultMap><sql id="Base_Column_List">goods_id, goods_sn, goods_name, market_price, shop_price, goods_stock, warn_stock, is_sale, is_new, sale_time, create_time, brand_id</sql><select id="listByBoodsVo" resultMap="BaseResultMap">select <include refid="Base_Column_List"></include>from tab_goods<where><if test="goodsSn != null and goodsSn != ''">goods_sn = #{goodsSn}</if><if test="goodsName != null and goodsName != ''">and goods_name like #{goodsName}</if><if test="createStartTime != null">and create_time >= #{createStartTime}</if><if test="createEndTime != null"><![CDATA[  and create_time <=  #{createEndTime} ]]></if></where></select></mapper>

更多推荐

SpringBoot_逆向工程

本文发布于:2023-07-27 22:08:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1225239.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:工程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!