写一个接口

配置了SSM后运行成功就可以开始写接口了

创建文件

- java
  - com
    - pdt
      - ssm
        - bean
        - controller
        - dao
          - impl
        - service
        - util
        - config.java

java的开发听说过的都知道有三层MVC

  • M层就是代表controller,是用来接受前端请求的,拿到前端参数后进行参数判断,是不是没传,是不是为空,都在这里判断,判断没问题后传给V层
  • V层就是代表service,是用来处理逻辑的,这里的逻辑一般是判断由数据库查询到的数据
  • C层就是数据库层,就是查数据库
  • 当数据被C层查到后怎么传回给V层,用return,V层传给M层也是return,M层返回给前端也是return,一般来说传给前端的都是Map数据格式

正式开始

  • bean/TestBean.java,Bean类首字母大写
public class TestBean {
    private int userId;
    private String userName;
    private String userPassword;
    private String userEmail;
    private List list;

    // get,set,toSting 省略不写
    // 如果是用IDEA编辑器,可以按 alt+ins 自动生成
}
  • controller/test.java,controller类小写就行
@Controller   // 这个注解,代表的意思就是我是M层
@RequestMapping("/test") // 这个就是请求前缀
public class test {
    
    @Autowired  // 这个注解的意思是我是会被调用的V层,理解为固定写法
    private TestService testService;

    @RequestMapping("/get")  // 加上这个就是整个请求是 /test/get
    @ResponseBody()  // 这个是表示我传给前端的数据会默认加工成json
    public Map get(HttpServletRequest req,TestBean testBean) {
        // get方法
        // 不管提交方式Form,也就是application/x-www-form-urlencoded;时
        // 还是json,也就是application/json;
        // req.getParameterMap()和bean都能接受到参数
        // get是不能传数组或者对象的
        Map map = new HashMap()

        // 看看req里有什么参数
        for(String key : req.getParameterMap().keySet()){
            System.out.println(key)
            System.out.println(req.getParameterMap().get(key)[0])
        }
        // 如果req里的请求有跟bean一样的字段会被自动传进去,一般都是用bean,req很少使用
        // 可以同时传很多的bean
        System.out.println(testBean.toString());
        
        // 进行参数判断
        if(testBean.getId() == null){
           map.put("msg","参数id不能为空")
           map.put("success",true)
        }else{
           // 传给下一层,方法名尽量同名
           map = testService.get(testBean)
        }
        return map;
    }
  • service/TestService.java,首字母大写
@Service  // 同 @Controller
public class TestService {

    @Autowired
    private TestDaoImpl testDaoImpl;

    public Map get(TestBean testBean) {
        Map map = new HashMap()
        ArrayList list = testDaoImpl.get(testBean);
        // 逻辑判断
        if(list.size() == 0){
            map.put("mag","没有查到数据")
        }else{
            map.put("list",list)
        }
        return map;
    }
}
  • dao/impl/TestDaoImpl.java
@Repository  // 同 @Controller
public class TestDaoImpl {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    // 通过JdbcTemplate的方法才能操作数据库
    public ArrayList get(TestBean testBean) {
        String sql = "select * from t_test where id = ?";
        return jdbcTemplate.queryForList(sql,testBean.getId());
    }
}

TestDaoImpl 是测试用的,正确是要用mybatis的

posted @ 2020-01-29 16:11  一个年轻淫  阅读(644)  评论(0编辑  收藏  举报