
{"id":2703,"date":"2020-12-15T11:32:31","date_gmt":"2020-12-15T03:32:31","guid":{"rendered":"http:\/\/127.0.0.2\/?p=2703"},"modified":"2021-01-05T14:10:07","modified_gmt":"2021-01-05T06:10:07","slug":"2020java%e6%a1%86%e6%9e%b6%e6%95%99%e7%a8%8b%e4%b9%8bspring%e7%9a%84restful%e7%9a%84crud%e5%ae%9e%e7%8e%b0","status":"publish","type":"post","link":"https:\/\/www.9713job.com\/?p=2703","title":{"rendered":"2020java\u6846\u67b6\u6559\u7a0b\u4e4bspring\u7684RESTful\u7684CRUD\u5b9e\u73b0"},"content":{"rendered":"<h3>2020java\u6846\u67b6\u6559\u7a0b\u4e4bspring\u7684RESTful\u7684CRUD\u5b9e\u73b0<\/h3>\n<p>1.\u521b\u5efa\u5b9e\u4f53\u7c7b<\/p>\n<p>2.\u521b\u5efadao<\/p>\n<pre>@Repository\r\npublic class UsersDao {\r\n    private static Map&lt;Integer, User&gt; map=null;\r\n\r\n    static{\r\n        map=new HashMap&lt;Integer, User&gt;();\r\n        map.put(1,new User(1,\"admin\",\"admin\",25,\"admin@qq.com\",\r\n                new Address(1,\"ah\",\"000\")));\r\n        map.put(2,new User(2,\"admin2\",\"admin2\",11,\"admin2@qq.com\",\r\n                new Address(2,\"ah2\",\"002\")));\r\n        map.put(3,new User(3,\"admin3\",\"admin3\",11,\"admin3@qq.com\",\r\n                new Address(3,\"ah3\",\"003\")));\r\n        map.put(4,new User(4,\"admin4\",\"admin4\",11,\"admin4@qq.com\",\r\n                new Address(4,\"ah4\",\"004\")));\r\n    }\r\n<!--more-->\r\n\r\n\r\n    private static Integer initid=5;\r\n    public void save(User user){\r\n        if (user.getId() == null) {\r\n            user.setId(initid++);\r\n        }\r\n        map.put(user.getId(),user);\r\n    }\r\n    \/\/\u67e5\u8be2\u6240\u6709\r\n    public Collection&lt;User&gt; getAll(){\r\n        return map.values();\r\n    }\r\n    \/\/\u67e5\u8be2\u5355\u4e2a\r\n    public User getId(Integer id){\r\n        return map.get(id);\r\n    }\r\n    \/\/\u79fb\u9664\r\n    public void delete(Integer id){\r\n        map.remove(id);\r\n    }\r\n}<\/pre>\n<p>3.\u63a7\u5236\u5c42<\/p>\n<pre>@RequestMapping(\"\/admin\")\r\n@Controller\r\n@SessionAttributes(value = {\"user\"},types = {String.class})\r\npublic class UserController {\r\n    @Autowired\r\n    private UsersDao usersDao;\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/RESTful\u98ce\u683c\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n    \/\/\u67e5\u8be2\u6240\u6709\r\n    @RequestMapping(value = \"\/list\",method = RequestMethod.GET)\r\n    public String list(Model model){\r\n        Collection&lt;User&gt; list = usersDao.getAll();\r\n        model.addAttribute(\"list\",list);\r\n        return \"admin\/list\";\r\n    }\r\n    \/\/\u5220\u9664\r\n    @RequestMapping(value = \"\/{id}\",method = RequestMethod.DELETE)\r\n    public String delete(@PathVariable(value = \"id\") Integer id){\r\n        System.out.println(\"\u6267\u884c\u5220\u9664\uff0c\u5df2\u5220\u9664\"+id);\r\n        usersDao.delete(id);\r\n        return \"redirect:\/admin\/list\";\r\n    }\r\n    \/\/\u6dfb\u52a0\u8868\u5355\r\n    @RequestMapping(value = \"\/add\",method = RequestMethod.GET)\r\n    public String add(){\r\n        System.out.println(\"add\");\r\n        return \"admin\/add\";\r\n    }\r\n    \/\/\u6dfb\u52a0\r\n    @RequestMapping(value = \"\/\",method = RequestMethod.POST)\r\n    public String save(User user){\r\n        System.out.println(\"save\");\r\n        usersDao.save(user);\r\n        return \"redirect:\/admin\/list\";\r\n    }\r\n    \/\/\u4fee\u6539\u8868\u5355\r\n    @RequestMapping(value = \"\/{id}\",method = RequestMethod.GET)\r\n    public String updateForm(@PathVariable(value = \"id\") Integer id,Model model){\r\n        System.out.println(\"edit\");\r\n        User user = usersDao.getId(id);\r\n        model.addAttribute(\"user\",user);\r\n        return \"admin\/updateForm\";\r\n    }\r\n    \/\/\u4fee\u6539\r\n    @RequestMapping(value = \"\/\",method = RequestMethod.PUT)\r\n    public String update(User user){\r\n        System.out.println(\"\u6267\u884c\u4fee\u6539\uff0c\u5df2\u4fee\u6539\");\r\n        usersDao.save(user);\r\n        return \"redirect:\/admin\/list\";\r\n    }\r\n}<\/pre>\n<p>4.\u67e5\u8be2\u6240\u6709\u8868\u5355\u9875<\/p>\n<pre>&lt;h1&gt;\u7528\u6237\u5217\u8868&lt;\/h1&gt;\r\n&lt;a href=\"add\"&gt;\u6dfb\u52a0\u7528\u6237&lt;\/a&gt;\r\n&lt;table border=\"1\"&gt;\r\n    &lt;tr&gt;\r\n        &lt;th&gt;id&lt;\/th&gt;\r\n        &lt;th&gt;username&lt;\/th&gt;\r\n        &lt;th&gt;password&lt;\/th&gt;\r\n        &lt;th&gt;age&lt;\/th&gt;\r\n        &lt;th&gt;email&lt;\/th&gt;\r\n        &lt;th&gt;address&lt;\/th&gt;\r\n        &lt;th&gt;\u64cd\u4f5c&lt;\/th&gt;\r\n    &lt;\/tr&gt;\r\n    &lt;c:forEach var=\"users\" items=\"${list}\"&gt;\r\n        &lt;tr&gt;\r\n            &lt;td&gt;${users.id}&lt;\/td&gt;\r\n            &lt;td&gt;${users.username}&lt;\/td&gt;\r\n            &lt;td&gt;${users.password}&lt;\/td&gt;\r\n            &lt;td&gt;${users.age}&lt;\/td&gt;\r\n            &lt;td&gt;${users.email}&lt;\/td&gt;\r\n            &lt;td&gt;${users.address}&lt;\/td&gt;\r\n            &lt;td&gt;\r\n                &lt;a href=\"javascript:void(0)\" onclick=\"deleteById(${users.id})\"&gt;\u5220\u9664&lt;\/a&gt;\r\n                &lt;a href=\"${pageContext.request.contextPath}\/admin\/${users.id}\" onclick=\"updateById(${users.id})\"&gt;\u4fee\u6539&lt;\/a&gt;\r\n            &lt;\/td&gt;\r\n        &lt;\/tr&gt;\r\n    &lt;\/c:forEach&gt;\r\n&lt;\/table&gt;\r\n&lt;form method=\"post\" id=\"deleteForm\"&gt;\r\n    &lt;input type=\"text\" name=\"_method\" value=\"DELETE\"&gt;\r\n    &lt;button&gt;\u5220\u9664&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n\r\n&lt;script&gt;\r\n    function deleteById(id){\r\n        var form=document.getElementById('deleteForm');\r\n        form.action=id;\r\n        document.getElementById('deleteForm').submit();\r\n    }\r\n    function updateById(id){\r\n        document.getElementById('updateForm').submit();\r\n    }\r\n&lt;\/script&gt;<\/pre>\n<p>5.\u6dfb\u52a0\u8868\u5355\u9875\u9762<\/p>\n<pre>&lt;form action=\"${pageContext.request.contextPath}\/admin\/\" method=\"post\"&gt;\r\n    &lt;label&gt;id : &lt;input type=\"text\" id=\"id\" name=\"id\"&gt;&lt;\/label&gt;&lt;br&gt;\r\n    &lt;label for=\"username\"&gt;\r\n        username : &lt;input type=\"text\" id=\"username\" name=\"username\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"password\"&gt;\r\n        password : &lt;input type=\"password\" name=\"password\" id=\"password\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"age\"&gt;\r\n        age : &lt;input type=\"text\" name=\"age\" id=\"age\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"email\"&gt;\r\n        email : &lt;input type=\"email\" name=\"email\" id=\"email\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"address.addr\"&gt;\r\n        addr : &lt;input type=\"text\" name=\"address.addr\" id=\"address.addr\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"address.zipCode\"&gt;\r\n        zipCode : &lt;input type=\"text\" name=\"address.zipCode\" id=\"address.zipCode\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;button&gt;submit&lt;\/button&gt;\r\n&lt;\/form&gt;<\/pre>\n<p>6.\u4fee\u6539\u8868\u5355\u9875\u9762<\/p>\n<pre>&lt;form action=\"${pageContext.request.contextPath}\/admin\/\" method=\"post\"&gt;\r\n    &lt;input type=\"hidden\" name=\"_method\" value=\"PUT\"&gt;\r\n    &lt;label for=\"id\"&gt;id : &lt;input type=\"text\" id=\"id\" name=\"id\" value=\"${user.id}\"&gt;&lt;\/label&gt;&lt;br&gt;\r\n    &lt;label for=\"username\"&gt;\r\n        username : &lt;input type=\"text\" id=\"username\" name=\"username\" value=\"${user.username}\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"password\"&gt;\r\n        password : &lt;input type=\"password\" name=\"password\" id=\"password\" value=\"${user.password}\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"age\"&gt;\r\n        age : &lt;input type=\"text\" name=\"age\" id=\"age\" value=\"${user.age}\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"email\"&gt;\r\n        email : &lt;input type=\"email\" name=\"email\" id=\"email\" value=\"${user.email}\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"address.addr\"&gt;\r\n        addr : &lt;input type=\"text\" name=\"address.addr\" id=\"address.addr\" value=\"${sessionScope.user.address.addr}\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;label for=\"address.zipCode\"&gt;\r\n        zipCode : &lt;input type=\"text\" name=\"address.zipCode\" id=\"address.zipCode\" value=\"${user.address.zipCode}\"&gt;&lt;br&gt;\r\n    &lt;\/label&gt;\r\n    &lt;button&gt;submit&lt;\/button&gt;\r\n&lt;\/form&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>2020java\u6846\u67b6\u6559\u7a0b\u4e4bspring\u7684RESTful\u7684CRUD\u5b9e\u73b0 1.\u521b\u5efa\u5b9e\u4f53\u7c7b 2.\u521b\u5efadao @Rep [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-2703","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts\/2703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2703"}],"version-history":[{"count":2,"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts\/2703\/revisions"}],"predecessor-version":[{"id":2705,"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts\/2703\/revisions\/2705"}],"wp:attachment":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}