zoukankan      html  css  js  c++  java
  • 写一个接口

    配置了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的

  • 相关阅读:
    20169306《网络攻击与防范》第八周学习总结
    20169306《网络攻击与防范》第七周学习总结
    20169306《网络攻击与防范》第六周学习总结
    20169306《网络攻击与防范》第五周学习总结
    20169306《网络攻击与防范》第四周学习总结
    SQL注入
    路径遍历漏洞
    sqlmap安装及简单使用——12.30
    margin,CSS边距重叠
    20169314 2016-2017-2《网络攻防》课程总结
  • 原文地址:https://www.cnblogs.com/pengdt/p/12240572.html
Copyright © 2011-2022 走看看