①后端代码编写,在dao数据访问层,我们要写在品牌的mapper(TbBrandMapper.xml)里面,查询数据库tb_brand表--------返回Map集合,id和text,而不是id和name。需设置别名。用dao层(数据访问层)原始方法,返回的是id和name的json形式。而我们需要的是id和text的json形式。所以需要设置别名并在数据访问层(dao层)重新添加select语句。
电商四十一已经完成了关联品牌下拉列表和关联规格下拉列表的显示。但下拉列表的数据是静态的(写死了)。因为将变量定义死了。
现在需要后端的代码可以从数据库表中抓取(用select语句查询)数据[ ]。
具体的是:
要求后端代码可以从表tb_brand中抓取(用select语句查询)数据格式:方法一格式:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]或者方法二格式:{data:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]}的对象格式。然后再在前端对数据进行封装。
要求后端代码可以从表tb_specification中抓取(用select语句查询)数据格式:方法一格式:[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]或者方法二格式:{data:[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]}的对象格式。然后再在前端对数据进行封装。
我们在后端代码从表tb_brand和表tb_specification中抓取(用select语句查询)数据格式,用方法一格式,即用select选择语句(查询表内容的语句)得到[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]和[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]格式。
tb_brand表:
调用默认的select查询,得到的是id和name但是,方法一的数据格式是:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........] ,所以name要换成别名text。而且每一个id和text(name)放在Map中。最后形成一个Map集合。List<Map>。Map中一个id对应一个text。
select id,name as text from tb_brand
需要在数据访问(dao)层,新建这么一个select语句。在dao层(数据访问层),直接返回一个Map集合,id为tb_brand表的id,key为text,text的值为tb_brand表的name值。
查询(select)的是品牌数据,我们要写在品牌的mapper(TbBrandMapper.xml)里面。
②后端代码编写,我们要在dao层(数据访问层)的接口TbBrandMapper.java中定义方法属性。
TbBrandMapper.xml文件中:
<select id="selectOptionList" resultType="java.util.Map">
select id,name as text from tb_brand
</select>
这个id的值selectOptionLis,是接口TbBrandMapper.java中的方法属性的名称。
③后端代码编写,写service层(服务层)的接口层(interface层)。
④后端代码编写,写service层(服务层)的实现层(implements层)。
⑤后端代码编写,控制(controller)层即web层。
⑥测试:看一下生成的json数据是不是[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]的格式。
install和build以后,在浏览器地址栏输入:http://localhost:9101/brand/selectOptionList.do
在浏览器界面是不是得到数据库的tb_brand表格的数据。