【store商城项目06】获取省市区列表

1.创建数据库表

CREATE TABLE t_dict_district (
  id INT(11) NOT NULL AUTO_INCREMENT,
  parent VARCHAR(6) DEFAULT NULL,
  `code` VARCHAR(6) DEFAULT NULL,
  `name` VARCHAR(16) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

2.创建省市区实体类

/*省市区代码*/
public class District {
    private Integer Id;
    private String Parent;
    private String Code;
    private String Name;
}

3.获取省市区列表-持久层

3.1规划需要执行SQL语句

select * from t_dict_district where parent =110100  order by parent asc

3.2设计接口和抽象方法

因为在其他功能模块也会用到省市区列表,为了降低代码的耦合性,就要创建一个新的接口

 public interface DistrictMapper {
    /**
     * 根据父代号获取市区信息
     * @param parent
     * @return 某个父区域所有的市区信息列表
     */
    List<District> findByParent(String parent);
    
}

3.3编写映射

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--命名就是接口的全类名-->
<mapper namespace="com.sdjzu.store.mapper.DistrictMapper">
        <select id="findByParent" resultType="com.sdjzu.store.entity.District">
            select * from t_dict_district where parent =#{parant}  order by code asc
        </select>
</mapper>

3.4单元测试

public class DistrictTest {
    @Autowired
    private DistrictMapper districtMapper;

    @Test
    public void findByParent() {
        List<District> byParent = districtMapper.findByParent("110100");
        for(District district : byParent){
            System.out.println(district);
        }

    }
}

4.获取省市区列表-业务层

4.1处理异常

没有异常处理

4.2设计接口和抽象方法

/*获取省市区列表*/
public interface DistrictService {
    /**
     * 获取省市列表
     * @param parent
     * @return 返回某父代码的市区信息列表
     */
    List<District> getByParent(String parent); 
}

4.3设计接口的实现类及其实现方法

@Service
public class DistrictServiceImpl implements IDistrictService {
    @Autowired
    private DistrictMapper districtMapper;


    @Override
    public List<District> getByParent(String parent) {
        List<District> byParent = districtMapper.findByParent(parent);
        /*
        * 在网络传输的过程中为了减少无效数据的传递,可以将无效的数据置为null
        * 作用:1.节省流量 2.提高效率
        * */
        for (District district:
        byParent) {
            district.setId(null);
            district.setParent(null);
        }
        return byParent;
    }
}

4.4单元测试

@SpringBootTest
@RunWith(SpringRunner.class)
public class AddressServiceTest {
    @Autowired
    private IAddressService addressService;
    @Test
    public void insert(){
        Address address = new Address();
        address.setName("dyj");
        address.setAddress("龙湖");
        address.setPhone("123345");
        addressService.addAddress(38,"ljl",address);
    }
}

5.

你可能感兴趣的:(java,数据库,开发语言)