05-Springboot电脑网上商城项目-新增地址和展示地址

七、新增收货地址

功能分析:展示列表、新增地址、修改地址、删除地址、设置默认

功能开发顺序:新增地址-展示列表-设置默认-删除地址-修改地址

1 创建地址表和实体类

CREATE TABLE t_address (
	aid INT AUTO_INCREMENT COMMENT '收货地址id',
	uid INT COMMENT '归属的用户id',
	name VARCHAR(20) COMMENT '收货人姓名',
	province_name VARCHAR(15) COMMENT '省-名称',
	province_code CHAR(6) COMMENT '省-行政代号',
	city_name VARCHAR(15) COMMENT '市-名称',
	city_code CHAR(6) COMMENT '市-行政代号',
	area_name VARCHAR(15) COMMENT '区-名称',
	area_code CHAR(6) COMMENT '区-行政代号',
	zip CHAR(6) COMMENT '邮政编码',
	address VARCHAR(50) COMMENT '详细地址',
	phone VARCHAR(20) COMMENT '手机',
	tel VARCHAR(20) COMMENT '固话',
	tag VARCHAR(6) COMMENT '标签',
	is_default INT COMMENT '是否默认:0-不默认,1-默认',
	created_user VARCHAR(20) COMMENT '创建人',
	created_time DATETIME COMMENT '创建时间',
	modified_user VARCHAR(20) COMMENT '修改人',
	modified_time DATETIME COMMENT '修改时间',
	PRIMARY KEY (aid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@Data
public class Address extends BaseEntity{
   
    private Integer aid;
    private Integer uid;
    private String name;
    private String provinceName;
    private String provinceCode;
    private String cityName;
    private String cityCode;
    private String areaName;
    private String areaCode;
    private String zip;
    private String address;
    private String phone;
    private String tel;
    private String tag;
    private Integer isDefault;
}

2 持久层

  1. 规划sql语句

    插入
    insert into t_address (除aid之外的字段) values(字段值列表)
    判断收货地址是否大于20个
    select count(*) from t_address where uid=#(uid)
    
  2. 设计接口和抽象方法

    public interface AddressMapper {
         
    
        /**
         * 新增收货地址
         * @param address
         * @return 返回受影响的行数
         */
        Integer insertAddress(Address address);
    
        /**
         * 查询以增加的地址个数
         * @param uid
         * @return 返回已存在地址个人
         */
        Integer countByUid(Integer uid);
    }
    
  3. 编写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">
    <!--namespaces属性 用于指定当前映射文件与哪一个mapper接口进行映射,需要指定包完整路径-->
    <mapper namespace="com.cy.store.mapper.AddressMapper">
        
        <resultMap id="AddressEntity" type="com.cy.store.entity.Address">
            <id column="aid" property="aid"/>
            <result column="province_name" property="provinceName"></result>
            <result column="province_code" property="provinceCode"></result>
            <result column="city_name" property="cityName"></result>
            <result column="city_code" property="cityCode"></result>
            <result column="area_name" property="areaName"></result>
            <result column="area_code" property="areaCode"></result>
            <result column="is_default" property="isDefault"></result>
        </resultMap>
    
        <insert id="insertAddress">
            insert into t_address (
                uid, name,province_name,province_code,city_name,city_code ,area_name,area_code,zip,
                address,phone,tel,tag,is_default,created_user,created_time,modified_user,modified_time
            )values (
                #{
         uid},#{
         name},#{
         provinceName},#{
         provinceCode},#{
         cityName},#{
         cityCode},#{
         areaName},#{
         areaCode},#{
         zip},
                #{
         address},#{
         phone},#{
         tel},#{
         tag},#{
         isDefault},#{
         createdUser},#{
         createdTime},#{
         modifiedUser},#{
         modifiedTime}
            )
        </insert>
    
        <select id="countByUid">
            select count(*) from t_address where uid=#{
         uid}
        </select>
    </mapper>
    
  4. 测试

      @Test
        public void insert(){
         
            Address address = new Address();
            address.setUid(7);
            address.setPhone("16688996688");
            address.setName("zhou2");
            addressMapper.insertAddress(address);
        }
    
        @Test
        public void countByUid(){
         
            System.out.println(addressMapper.addressByUid(7))

你可能感兴趣的:(spring,boot,java,mysql)