以下从controller层开始:
package com.bootdo.common.controller;
import com.bootdo.common.domain.City;
import com.bootdo.common.domain.Province;
import com.bootdo.common.service.SiteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.util.List;
@RequestMapping("/site")
@Controller
public class SiteController implements Serializable{
private static final long serialVersionUID = 1L;
@Autowired
SiteService siteService;
@GetMapping("/get_Province")
@ResponseBody()
public List<Province> initProvince() {
return siteService.getAllProvince();
}
@GetMapping("/get_city")
@ResponseBody()
public List<City> getCity(HttpServletRequest request) {
String codeP = request.getParameter("codeP");
return siteService.getCity(codeP);
}
@GetMapping("/get_area")
@ResponseBody()
public List<Province> getArea(HttpServletRequest request) {
String codeC = request.getParameter("codeC");
List<Province> list = siteService.getArea(codeC);
return list;
}
}
在Java的开发中,controller层是连接前端和后端的。
package com.bootdo.common.service;
import com.bootdo.common.domain.City;
import com.bootdo.common.domain.Province;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public interface SiteService {
List<Province> getAllProvince();
List<City> getCity(String codeP);
List<Province> getArea(String codeC);
}
接受前端发来的请求,同时向后端发送请求,——>service 层——>serviceImpl实现service层,同时连接dao层,(在dao层中同样是接口)——>通过dao层去实现对数据库的操作——在XML文件中通过namespace完成连接dao层。
package com.bootdo.common.service.impl;
import com.bootdo.common.dao.AreaDao;
import com.bootdo.common.dao.CityDao;
import com.bootdo.common.dao.ProvinceDao;
import com.bootdo.common.domain.City;
import com.bootdo.common.domain.Province;
import com.bootdo.common.service.SiteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SiteServiceImpl implements SiteService {
@Autowired
ProvinceDao provinceMapper;
@Autowired
CityDao cityMapper;
@Autowired
AreaDao areaMapper;
@Override
public List<Province> getAllProvince() {
List<Province> list = provinceMapper.list();
return list;
}
@Override
public List<City> getCity(String codeP) {
return cityMapper.list(codeP);
}
@Override
public List<Province> getArea(String codeC) {
return areaMapper.list(codeC);
}
}
下边是dao层代码:
package com.bootdo.common.dao;
import com.bootdo.common.domain.Province;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 系统日志
* @author chglee
* @email [email protected]
* @date 2017-10-03 15:45:42
*/
@Mapper
public interface AreaDao {
List<Province> list(String codeC);
}
最后就是操作数据库了。
<?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">
<mapper namespace="com.bootdo.common.dao.AreaDao">
<select id="list" resultType="com.bootdo.common.domain.Area" parameterType="java.lang.String">
select `id`,`code_a`,`name`,`code_c` from area WHERE code_c= #{codeC}
</select>
</mapper>
从这个里边的代码中可以看出来,对于不同的数据库,不同的表操作,可以通过在serviceImple层来变换。然后写不同的dao层和不同的XML文件来操作。