{"id":543,"date":"2023-03-23T21:19:42","date_gmt":"2023-03-23T13:19:42","guid":{"rendered":""},"modified":"2023-03-23T21:19:42","modified_gmt":"2023-03-23T13:19:42","slug":"Spring MVC CRUD\u793a\u4f8b","status":"publish","type":"post","link":"https:\/\/bianchenghao6.com\/543.html","title":{"rendered":"Spring MVC CRUD\u793a\u4f8b"},"content":{"rendered":"


\n <\/head>
\n <\/p>\n

\n

Spring MVC CRUD\u793a\u4f8b<\/h1>\n<\/p><\/div>\n
\n CRUD(\u521b\u5efa\uff0c\u8bfb\u53d6\uff0c\u66f4\u65b0\u548c\u5220\u9664)\u5e94\u7528\u7a0b\u5e8f\u662f\u7528\u4e8e\u521b\u5efa\u4efb\u4f55\u9879\u76ee\u7684\u6700\u91cd\u8981\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u5b83\u63d0\u4f9b\u4e86\u5f00\u53d1\u5927\u578b\u9879\u76ee\u7684\u60f3\u6cd5\u3002\u5728SpringMVC\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u5f00\u53d1\u4e00\u4e2a\u7b80\u5355\u7684CRUD\u5e94\u7528\u7a0b\u5e8f\u3002\n <\/div>\n
\n \u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u4f7f\u7528
\n JdbcTemplate <\/strong>\u8fdb\u884c\u6570\u636e\u5e93\u4ea4\u4e92\u3002\n <\/div>\n

\u521b\u5efa\u4e00\u4e2a\u8868<\/h2>\n
\n \u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u4f7f\u7528\u7684\u662fMySQL\u6570\u636e\u5e93\u4e2d\u5b58\u5728\u7684emp99\u8868\u3002\u5b83\u5177\u67094\u4e2a\u5b57\u6bb5: ID\uff0c\u540d\u79f0\uff0c\u85aa\u6c34\u548c\u540d\u79f0\u3002\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c1\u5f20 <\/p>\n


\n

Spring MVC CRUD\u793a\u4f8b<\/h2>\n

1\u3001\u5c06\u4f9d\u8d56\u9879\u6dfb\u52a0\u5230pom.xml\u6587\u4ef6\u3002<\/h3>\n
\n pom.xml <\/strong>\n <\/div>\n
\n
\r\n <!-- https:\/\/mvnrepository.com\/artifact\/org.springframework\/spring-webmvc -->\r\n<dependency>\r\n    <groupId>org.springframework<\/groupId>\r\n    <artifactId>spring-webmvc<\/artifactId>\r\n    <version>5.1.1.RELEASE<\/version>\r\n<\/dependency>\r\n<!-- https:\/\/mvnrepository.com\/artifact\/org.apache.tomcat\/tomcat-jasper -->\r\n<dependency>\r\n    <groupId>org.apache.tomcat<\/groupId>\r\n    <artifactId>tomcat-jasper<\/artifactId>\r\n    <version>9.0.12<\/version>\r\n<\/dependency>\r\n    <!-- https:\/\/mvnrepository.com\/artifact\/javax.servlet\/javax.servlet-api -->\r\n<dependency>  \r\n    <groupId>javax.servlet<\/groupId>  \r\n    <artifactId>servlet-api<\/artifactId>  \r\n    <version>3.0-alpha-1<\/version>  \r\n<\/dependency>\r\n<!-- https:\/\/mvnrepository.com\/artifact\/javax.servlet\/jstl -->\r\n<dependency>\r\n    <groupId>javax.servlet<\/groupId>\r\n    <artifactId>jstl<\/artifactId>\r\n    <version>1.2<\/version>\r\n<\/dependency>\r\n    <!-- https:\/\/mvnrepository.com\/artifact\/mysql\/mysql-connector-java -->\r\n<dependency>\r\n    <groupId>mysql<\/groupId>\r\n    <artifactId>mysql-connector-java<\/artifactId>\r\n    <version>8.0.11<\/version>\r\n<\/dependency>\r\n    <!-- https:\/\/mvnrepository.com\/artifact\/org.springframework\/spring-jdbc -->\r\n<dependency>\r\n    <groupId>org.springframework<\/groupId>\r\n    <artifactId>spring-jdbc<\/artifactId>\r\n    <version>5.1.1.RELEASE<\/version>\r\n<\/dependency>\r\n<\/pre>\n

<\/code>\n <\/div>\n

2\u3001\u521b\u5efabean\u7c7b<\/h3>\n
\n \u5728\u8fd9\u91cc\uff0cbean\u7c7b\u5305\u542b\u5bf9\u5e94\u4e8e\u6570\u636e\u5e93\u4e2d\u5b58\u5728\u7684\u5b57\u6bb5\u7684\u53d8\u91cf(\u4ee5\u53casetter\u548cgetter\u65b9\u6cd5)\u3002\n <\/div>\n
\n Emp.java <\/strong>\n <\/div>\n
\n
\r\npackage <\/span>com.lidihuo.beans;  \r\n  \r\npublic <\/span>class <\/span>Emp {  \r\nprivate <\/span>int <\/span>id;  \r\nprivate <\/span>String name;  \r\nprivate <\/span>float<\/span> salary;  \r\nprivate <\/span>String designation;  \r\n  \r\npublic <\/span>int <\/span>getId() {  \r\n    return <\/span>id;  \r\n}  \r\npublic void <\/span>setId(int <\/span>id) {  \r\n    this<\/span>.id = id;  \r\n}  \r\npublic <\/span>String getName() {  \r\n    return <\/span>name;  \r\n}  \r\npublic void <\/span>setName(String name) {  \r\n    this<\/span>.name = name;  \r\n}  \r\npublic <\/span>float<\/span> getSalary() {  \r\n    return <\/span>salary;  \r\n}  \r\npublic void <\/span>setSalary(float<\/span> salary) {  \r\n    this<\/span>.salary = salary;  \r\n}  \r\npublic <\/span>String getDesignation() {  \r\n    return <\/span>designation;  \r\n}  \r\npublic void <\/span>setDesignation(String designation) {  \r\n    this<\/span>.designation = designation;  \r\n}  \r\n  \r\n}  \r\n<\/pre>\n

<\/code>\n <\/div>\n

3\u3001\u521b\u5efa\u63a7\u5236\u5668\u7c7b<\/h3>\n
\n EmpController.java <\/strong>\n <\/div>\n
\n
\r\npackage <\/span>com.lidihuo.controllers;   \r\nimport java.util.List;  \r\nimport org.springframework.beans.factory.annotation.Autowired;  \r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.web.bind.annotation.ModelAttribute;  \r\nimport org.springframework.web.bind.annotation.PathVariable;  \r\nimport org.springframework.web.bind.annotation.RequestMapping;  \r\nimport org.springframework.web.bind.annotation.RequestMethod;   \r\nimport com.lidihuo.beans.Emp;  \r\nimport com.lidihuo.dao.EmpDao;  \r\n@Controller  \r\npublic <\/span>class <\/span>EmpController {  \r\n    @Autowired  \r\n    EmpDao dao;\/\/will inject dao from XML file  \r\n      \r\n    \/*It displays a form to input data, here \"command\"<\/span><\/span><\/span> is a reserved request attribute \r\n     *which is used to display object data into form \r\n     *\/  \r\n    @RequestMapping(\"\/empform\"<\/span>)  \r\n    public <\/span>String showform(Model m){  \r\n        m.addAttribute<\/span>(\"command\", new <\/span>Emp());\r\n        return <\/span>\"empform\"<\/span>; \r\n    }  \r\n    \/*It saves object into database. The @ModelAttribute puts request data \r\n     *  into model object. You need to mention RequestMethod.POST method  \r\n     *  because default <\/span>request is GET*\/  \r\n    @RequestMapping(value=\"\/save\"<\/span>,method = RequestMethod.POST)  \r\n    public <\/span>String save(@ModelAttribute(\"emp\"<\/span><\/span>) Emp emp){  \r\n        dao.save<\/span>(emp);  \r\n        return <\/span>\"redirect:\/viewemp\"<\/span><\/span><\/span>;\/\/will redirect to viewemp request mapping  \r\n    }  \r\n    \/* It provides list of employees in model object *\/  \r\n    @RequestMapping(\"\/viewemp\"<\/span>)  \r\n    public <\/span>String viewemp(Model m){  \r\n        List<Emp> list=dao.getEmployees<\/span>();  \r\n        m.addAttribute<\/span>(\"list\"<\/span>,list);\r\n        return <\/span>\"viewemp\"<\/span>;  \r\n    }  \r\n    \/* It displays object data into form for <\/span>the given id.  \r\n     * The @PathVariable puts URL data into variable.*\/  \r\n    @RequestMapping(value=\"\/editemp\/{id}\"<\/span>)  \r\n    public <\/span>String edit(@PathVariable int <\/span>id, Model m){  \r\n        Emp emp=dao.getEmpById<\/span>(id);  \r\n        m.addAttribute<\/span>(\"command\",emp);\r\n        return <\/span>\"empeditform\"<\/span>;  \r\n    }  \r\n    \/* It updates model object. *\/  \r\n    @RequestMapping(value=\"\/editsave\"<\/span>,method = RequestMethod.POST)  \r\n    public <\/span>String editsave(@ModelAttribute(\"emp\") Emp emp){  \r\n        dao.update<\/span>(emp);  \r\n        return <\/span>\"redirect:\/viewemp\";  \r\n    }  \r\n    \/* It deletes record for <\/span>the given id in URL and redirects to \/viewemp *\/  \r\n    @RequestMapping(value=\"\/deleteemp\/{id}\"<\/span>,method = RequestMethod.GET)  \r\n    public <\/span>String delete(@PathVariable int <\/span>id){  \r\n        dao.delete<\/span>(id);  \r\n        return <\/span>\"redirect:\/viewemp\";  \r\n    }   \r\n}\r\n<\/pre>\n

<\/code>\n <\/div>\n

4\u3001\u521b\u5efaDAO\u7c7b<\/h3>\n
\n \u8ba9\u6211\u4eec\u521b\u5efa\u4e00\u4e2aDAO\u7c7b\u4ee5\u8bbf\u95ee\u6570\u636e\u5e93\u4e2d\u6240\u9700\u7684\u6570\u636e\u3002\n <\/div>\n
\n EmpDao.java <\/strong>\n <\/div>\n
\n
\r\npackage <\/span>com.lidihuo.dao;  \r\nimport java.sql.ResultSet;  \r\nimport java.sql.SQLException;  \r\nimport java.util.List;  \r\nimport org.springframework.jdbc.core.BeanPropertyRowMapper;  \r\nimport org.springframework.jdbc.core.JdbcTemplate;  \r\nimport org.springframework.jdbc.core.RowMapper;  \r\nimport com.lidihuo.beans.Emp;  \r\n  \r\npublic <\/span>class <\/span>EmpDao {  \r\nJdbcTemplate template;  \r\n  \r\npublic void <\/span>setTemplate(JdbcTemplate template) {  \r\n    this<\/span>.template = template;  \r\n}  \r\npublic <\/span>int <\/span>save(Emp p){  \r\n    String sql=\"insert into Emp99(name,salary,designation) values('<\/span>\"+p.getName<\/span>()+\"<\/span><\/span>',\"<\/span>+p.getSalary<\/span>()+\",'<\/span>\"+p.getDesignation<\/span>()+\"<\/span><\/span>')\"<\/span>;  \r\n    return <\/span>template.update<\/span>(sql);  \r\n}  \r\npublic <\/span>int <\/span>update(Emp p){  \r\n    String sql=\"update Emp99 set name='<\/span>\"+p.getName<\/span>()+\"', salary=\"<\/span>+p.getSalary<\/span>()+\",designation='<\/span>\"+p.getDesignation<\/span>()+\"' where id=\"<\/span>+p.getId<\/span>()+\"\"<\/span><\/span>;  \r\n    return <\/span>template.update<\/span>(sql);  \r\n}  \r\npublic <\/span>int <\/span>delete(int <\/span>id){  \r\n    String sql=\"delete from Emp99 where id=\"<\/span>+id+\"\";  \r\n    return <\/span>template.update<\/span>(sql);  \r\n}  \r\npublic <\/span>Emp getEmpById(int <\/span>id){  \r\n    String sql=\"select * from Emp99 where id=?\"<\/span>;  \r\n    return <\/span>template.queryForObject<\/span>(sql, new <\/span>Object[]{id},new BeanPropertyRowMapper<Emp>(Emp.class));  \r\n}  \r\npublic <\/span>List<Emp> getEmployees(){  \r\n    return <\/span>template.query<\/span>(\"select * from Emp99\"<\/span>,new RowMapper<Emp>(){  \r\n        public <\/span>Emp mapRow(ResultSet rs, int <\/span>row) throws <\/span>SQLException {  \r\n            Emp e=new Emp();  \r\n            e.setId<\/span>(rs.getInt<\/span>(1));  \r\n            e.setName<\/span>(rs.getString<\/span>(2));  \r\n            e.setSalary<\/span>(rs.getfloat<\/span><\/span>(3));  \r\n            e.setDesignation<\/span>(rs.getString<\/span>(4));  \r\n            return <\/span>e;  \r\n        }  \r\n    });  \r\n}  \r\n} \r\n<\/pre>\n

<\/code>\n <\/div>\n

5\u3001\u5728web.xml\u6587\u4ef6\u4e2d\u63d0\u4f9b\u63a7\u5236\u5668\u7684\u6761\u76ee<\/h3>\n
\n web.xml <\/strong>\n <\/div>\n
\n
\r\n<?xml version=\"1.0\"<\/span> encoding=\"UTF-8\"<\/span>?>\r\n<web-app xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span> xmlns=\"http:\/\/java.sun.com\/xml\/ns\/javaee\"<\/span> xsi:schemaLocation=\"http:\/\/java.sun.com\/xml\/ns\/javaee http:\/\/java.sun.com\/xml\/ns\/javaee\/web-app_3_0.xsd\"<\/span> id=\"WebApp_ID\"<\/span> version=\"3.0\"<\/span>>\r\n  <display-name>SpringMVC<\/display-name>\r\n   <servlet>  \r\n    <servlet-name>spring<\/servlet-name>  \r\n    <servlet-class>org.springframework.web.servlet.DispatcherServlet<\/servlet-class>  \r\n    <load-on-startup>1<\/load-on-startup>    \r\n<\/servlet>  \r\n<servlet-mapping>  \r\n    <servlet-name>spring<\/servlet-name>  \r\n    <url-pattern>\/<\/url-pattern>  \r\n<\/servlet-mapping>  \r\n<\/web-app>\r\n<\/pre>\n

<\/code>\n <\/div>\n

6\u3001\u5728xml\u6587\u4ef6\u4e2d\u5b9a\u4e49Bean <\/h3>\n
\n spring-servlet.xml <\/strong>\n <\/div>\n
\n
\r\n<?xml version=\"1.0\"<\/span> encoding=\"UTF-8\"<\/span>?>\r\n<beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"<\/span>\r\n    xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span> \r\n    xmlns:context=\"http:\/\/www.springframework.org\/schema\/context\"<\/span>\r\n    xmlns:mvc=\"http:\/\/www.springframework.org\/schema\/mvc\"<\/span>\r\n    xsi:schemaLocation=\"\r\n        http:\/\/www.springframework.org\/schema\/beans\r\n        http:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd\r\n        http:\/\/www.springframework.org\/schema\/context\r\n        http:\/\/www.springframework.org\/schema\/context\/spring-context.xsd\r\n        http:\/\/www.springframework.org\/schema\/mvc\r\n        http:\/\/www.springframework.org\/schema\/mvc\/spring-mvc.xsd\">\r\n<context:component-scan base-package=\"com.lidihuo.controllers\"<\/span>><\/context:component-scan>  \r\n  \r\n<bean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\"<\/span>>  \r\n<property name=\"prefix\"<\/span> value=\"\/WEB-INF\/jsp\/\"<\/span>><\/property>  \r\n<property name=\"suffix\"<\/span> value=\".jsp\"<\/span>><\/property>  \r\n<\/bean>  \r\n  \r\n<bean id=\"ds\"<\/span><\/span> class=\"org.springframework.jdbc.datasource.DriverManagerDataSource\"<\/span>>  \r\n<property name=\"driverClassName\"<\/span> value=\"com.mysql.jdbc.Driver\"<\/span>><\/property>  \r\n<property name=\"url\"<\/span> value=\"jdbc:mysql:\/\/localhost:3306\/test\"<\/span>><\/property>  \r\n<property name=\"username\"<\/span> value=\"\"<\/span><\/span>><\/property>  \r\n<property name=\"password\"<\/span> value=\"\"><\/property>  \r\n<\/bean>  \r\n  \r\n<bean id=\"jt\"<\/span><\/span> class=\"org.springframework.jdbc.core.JdbcTemplate\"<\/span>>  \r\n<property name=\"dataSource\"<\/span> ref=\"ds\"><\/property>  \r\n<\/bean>  \r\n  \r\n<bean id=\"dao\"<\/span> class=\"com.lidihuo.dao.EmpDao\"<\/span>>  \r\n<property name=\"template\"<\/span> ref=\"jt\"><\/property>  \r\n<\/bean>     \r\n<\/beans>\r\n<\/pre>\n

<\/code>\n <\/div>\n

7\u3001\u521b\u5efa\u8bf7\u6c42\u7684\u9875\u9762<\/h3>\n
\n index.jsp <\/strong>\n <\/div>\n
\n
\r\n<a href=\"empform\"<\/span>>Add Employee<\/a>\r\n<a href=\"viewemp\"<\/span>>View Employees<\/a>\r\n<\/pre>\n

<\/code>\n <\/div>\n

8\u3001\u521b\u5efa\u5176\u4ed6\u89c6\u56fe\u7ec4\u4ef6<\/h3>\n
\n empform.jsp <\/strong>\n <\/div>\n
\n
\r\n<%@ taglib uri=\"http:\/\/www.springframework.org\/tags\/form\"<\/span> prefix=\"form\"<\/span>%>  \r\n<%@ taglib uri=\"http:\/\/java.sun.com\/jsp\/jstl\/core\"<\/span> prefix=\"c\"<\/span>%>  \r\n        <h1>Add new <\/span>Employee<\/h1>\r\n       <form:form method=\"post\"<\/span> action=\"save\"<\/span>>  \r\n        <table >  \r\n         <tr>  \r\n          <td>Name : <\/td> \r\n          <td><form:input path=\"name\"<\/span>  \/><\/td>\r\n         <\/tr>  \r\n         <tr>  \r\n          <td>Salary :<\/td>  \r\n          <td><form:input path=\"salary\"<\/span> \/><\/td>\r\n         <\/tr> \r\n         <tr>  \r\n          <td>Designation :<\/td>  \r\n          <td><form:input path=\"designation\"<\/span> \/><\/td>\r\n         <\/tr> \r\n         <tr>  \r\n          <td> <\/td>  \r\n          <td><input type=\"submit\"<\/span> value=\"Save\"<\/span> \/><\/td>  \r\n         <\/tr>  \r\n        <\/table>  \r\n       <\/form:form>  \r\n<\/pre>\n

<\/code>\n <\/div>\n

\n empeditform.jsp <\/strong>\n <\/div>\n
\n \u6b64\u5904\"\/SpringMVCCRUDSimple\"\u662f\u9879\u76ee\u540d\u79f0\uff0c\u5982\u679c\u60a8\u4f7f\u7528\u5176\u4ed6\u9879\u76ee\u540d\u79f0\uff0c\u8bf7\u66f4\u6539\u6b64\u540d\u79f0\u3002\u5bf9\u4e8e\u5b9e\u65f6\u5e94\u7528\u7a0b\u5e8f\uff0c\u60a8\u53ef\u4ee5\u63d0\u4f9b\u5b8c\u6574\u7684URL\u3002\n <\/div>\n
\n
\r\n<%@ taglib uri=\"http:\/\/www.springframework.org\/tags\/form\"<\/span> prefix=\"form\"<\/span>%>  \r\n<%@ taglib uri=\"http:\/\/java.sun.com\/jsp\/jstl\/core\"<\/span> prefix=\"c\"<\/span>%>  \r\n        <h1>Edit Employee<\/h1>\r\n       <form:form method=\"POST\"<\/span> action=\"\/SpringMVCCRUDSimple\/editsave\"<\/span>>  \r\n        <table >  \r\n        <tr>\r\n        <td><\/td>  \r\n         <td><form:hidden  path=\"id\"<\/span> \/><\/td>\r\n         <\/tr> \r\n         <tr>  \r\n          <td>Name : <\/td> \r\n          <td><form:input path=\"name\"<\/span>  \/><\/td>\r\n         <\/tr>  \r\n         <tr>  \r\n          <td>Salary :<\/td>  \r\n          <td><form:input path=\"salary\"<\/span> \/><\/td>\r\n         <\/tr> \r\n         <tr>  \r\n          <td>Designation :<\/td>  \r\n          <td><form:input path=\"designation\"<\/span> \/><\/td>\r\n         <\/tr> \r\n         \r\n         <tr>  \r\n          <td> <\/td>  \r\n          <td><input type=\"submit\"<\/span> value=\"Edit Save\"<\/span> \/><\/td>  \r\n         <\/tr>  \r\n        <\/table>  \r\n       <\/form:form>  \r\n<\/pre>\n

<\/code>\n <\/div>\n

\n viewemp.jsp <\/strong>\n <\/div>\n
\n
\r\n    <%@ taglib uri=\"http:\/\/www.springframework.org\/tags\/form\"<\/span> prefix=\"form\"<\/span>%>  \r\n    <%@ taglib uri=\"http:\/\/java.sun.com\/jsp\/jstl\/core\"<\/span> prefix=\"c\"<\/span>%>  \r\n    <h1>Employees List<\/h1>\r\n    <table border=\"2\"<\/span><\/span> width=\"70%\"<\/span> cellpadding=\"2\">\r\n    <tr><th>Id<\/th><th>Name<\/th><th>Salary<\/th><th>Designation<\/th><th>Edit<\/th><th>Delete<\/th><\/tr>\r\n    <c:forEach var=\"emp\"<\/span> items=\"${list}\"<\/span>> \r\n    <tr>\r\n    <td>${emp.id}<\/td>\r\n    <td>${emp.name}<\/td>\r\n    <td>${emp.salary}<\/td>\r\n    <td>${emp.designation}<\/td>\r\n    <td><a href=\"editemp\/${emp.id}\"<\/span>>Edit<\/a><\/td>\r\n    <td><a href=\"deleteemp\/${emp.id}\"<\/span>>Delete<\/a><\/td>\r\n    <\/tr>\r\n    <\/c:forEach>\r\n    <\/table>\r\n    <br\/>\r\n    <a href=\"empform\"<\/span>>Add new <\/span>Employee<\/a>\r\n<\/pre>\n

<\/code>\n <\/div>\n

\n \u8f93\u51fa: <\/strong>\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c2\u5f20
\n <\/p>\n

\n \u70b9\u51fb
\n \u6dfb\u52a0\u5458\u5de5<\/strong>\u65f6\uff0c\u60a8\u5c06\u770b\u5230\u4ee5\u4e0b\u8868\u683c\u3002\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c3\u5f20
\n <\/p>\n

\n \u586b\u5199\u8868\u683c\uff0c\u7136\u540e
\n \u5355\u51fb\u4fdd\u5b58<\/strong>\u4ee5\u5c06\u6761\u76ee\u6dfb\u52a0\u5230\u6570\u636e\u5e93\u4e2d\u3002\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c4\u5f20
\n <\/p>\n

\n \u73b0\u5728\uff0c\u70b9\u51fb
\n \u7f16\u8f91<\/strong>\u4ee5\u5bf9\u63d0\u4f9b\u7684\u5185\u5bb9\u8fdb\u884c\u4e00\u4e9b\u66f4\u6539\u6570\u636e\u3002\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c5\u5f20
\n <\/p>\n

\n \u73b0\u5728\uff0c\u5355\u51fb
\n \u7f16\u8f91\u4fdd\u5b58<\/strong>\uff0c\u5c06\u5177\u6709\u66f4\u6539\u7684\u6761\u76ee\u6dfb\u52a0\u5230\u6570\u636e\u5e93\u4e2d\u3002\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c6\u5f20
\n <\/p>\n

\n \u73b0\u5728\uff0c\u5355\u51fb
\n \u5220\u9664<\/strong>\u4ece\u6570\u636e\u5e93\u4e2d\u5220\u9664\u6761\u76ee\u3002\n <\/div>\n

Spring MVC CRUD\u793a\u4f8b_https:\/\/bianchenghao6.com_\u3010Spring \u6559\u7a0b\u3011_\u7b2c7\u5f20
\n
\n <\/body>
\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Spring MVC CRUD\u793a\u4f8bzh-cn","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[],"class_list":["post-543","post","type-post","status-publish","format-standard","hentry","category-bc_spring_jc"],"_links":{"self":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/543"}],"collection":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/comments?post=543"}],"version-history":[{"count":0,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/543\/revisions"}],"wp:attachment":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/media?parent=543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/categories?post=543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/tags?post=543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}