这里有新鲜出炉的精品教程,程序狗速度看过来!
Spring是什么呢?首先它是一个开源的项目,而且目前非常活跃;它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等
本篇文章将会对Spring+SpringMVC+hibernate的整合开发进行介绍。具有很好的参考价值。下面跟着小编一起来看下吧
前言:
最近没什么事做,搭个框架写成博客记录下来,拉通一下之前所学知识.
话不多说,我们直接步入正题。
准备工作:
1/安装并配置java运行环境
2/数据库的安装配置(Mysql)
3/安装并配置服务器(Tomcat)
4/Maven
5/ IntelliJIDEA的安装配置(本人使用的主要软件是IntelliJIDEA,没用eclipse什么的)
6/ 使用IntelliJIDEA创建一个web app项目。
貌似就这些了吧
导包
不同于以往的导包,由于我们创建的是maven的webapp项目,所以现在只需配置下pomxml这个配置文件,系统会自动到maven的中央仓库去下载相应的包.
本人的pom.xml配置文件如下(都写有说明的哈):
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>XRog</groupId>
- <artifactId>ssh</artifactId>
- <packaging>war</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>ssh Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <!-- 本人将配置包的版本信息都统一放入此处,方便以后管理-->
- <properties>
- <springVersion>4.3.1.RELEASE</springVersion>
- <hibernateVersion>4.3.5.Final</hibernateVersion>
- <jstlVersion>1.2</jstlVersion>
- <taglibVersion>1.1.2</taglibVersion>
- <servletVersion>3.0-alpha-1</servletVersion>
- <jsonVersion>1.9.13</jsonVersion>
- <jacksonVersion>2.5.0</jacksonVersion>
- <mysqlVersion>6.0.3</mysqlVersion>
- <c3p0Version>0.9.1.2</c3p0Version>
- <log4jVersion>1.2.17</log4jVersion>
- <fileuploadVersion>1.3.1</fileuploadVersion>
- <lombokVersion>1.16.10</lombokVersion>
- </properties>
- <dependencies>
- <!-- 单元测试 -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <!-- spring-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${springVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${springVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${springVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>${springVersion}</version>
- </dependency>
- <!-- spring web + spring MVC-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>${springVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>${springVersion}</version>
- </dependency>
- <!-- hibernate配置-->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${hibernateVersion}</version>
- </dependency>
- <!-- hibernate 缓存, 视情况添加-->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-ehcache</artifactId>
- <version>${hibernateVersion}</version>
- </dependency>
- <!-- jsp页面使用的jstl支持-->
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>${jstlVersion}</version>
- </dependency>
- <dependency>
- <groupId>taglibs</groupId>
- <artifactId>standard</artifactId>
- <version>${taglibVersion}</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>${servletVersion}</version>
- <scope>provided</scope>
- </dependency>
- <!-- DataBase数据库连接 mysql包-->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>${mysqlVersion}</version>
- </dependency>
- <!-- 数据库连接池-->
- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>${c3p0Version}</version>
- </dependency>
- <!-- json数据 使springMVC可以返回json值 ,视情况添加-->
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${jsonVersion}</version>
- </dependency>
- <!-- Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象-->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>${jacksonVersion}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>${jacksonVersion}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jacksonVersion}</version>
- </dependency>
- <!-- log4j配置, 视情况添加-->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4jVersion}</version>
- </dependency>
- <!--文件 上传-->
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>${fileuploadVersion}</version>
- </dependency>
- <!-- lombok插件导包-->
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>${lombokVersion}</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <finalName>ssh</finalName>
- </build>
- </project>
OK,配置后运行下maven,就会自动向中央仓库下载相应的包啦!(这个就不多说了)。
SpringMVC配置
我现在在这里把我配置后的结构拿出来给你们看下
我们先配置下SpringMVC的配置:resources/META-INF/spring-mvc.xml
- <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-4.1.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
- <!-- 启动注解驱动的spring MVC功能,注册请求url和注解POJO类方法的映射-->
- <mvc:annotation-driven />
- <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
- <context:component-scan base-package="com.ssh" />
- <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"
- />
- <property name="prefix" value="views/" />
- <!-- 前缀 -->
- <property name="suffix" value=".jsp" />
- <!-- 后缀 -->
- </bean>
- <!--这里是对静态资源的映射-->
- <mvc:resources mapping="/js/**" location="/resources/js/" />
- <mvc:resources mapping="/css/**" location="/resources/css/" />
- <mvc:resources mapping="/img/**" location="/resources/img/" />
- </beans>
好了,我们现在修改下web.xml这个配置文件,完善下SpringMVC的配置, web.xml配置如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- version="3.0">
- <!-- 地址为http://localhost:8080/ 显示的默认网页-->
- <welcome-file-list>
- <welcome-file>/index.jsp</welcome-file>
- </welcome-file-list>
- <!-- spring MVC config start-->
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <!-- 此处指向的的是SpringMVC的配置文件 -->
- <param-value>classpath:META-INF/spring-mvc.xml</param-value>
- </init-param>
- <!--配置容器在启动的时候就加载这个servlet并实例化-->
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!-- spring MVC config end-->
- </web-app>
OK,SpringMVC配置完成,现在我们进行一下测试吧
在controller层新建一个MainController,内容如下
- package com.ssh.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- /**
- * Created by XRog
- * On 2/1/2017.12:36 AM
- */
- @Controller
- public class MainController {
- @RequestMapping(value = "test", method = RequestMethod.GET)
- public String test(){
- // 实际返回的是views/test.jsp ,spring-mvc.xml中配置过前后缀
- return "test";
- }
- }
test.jsp网页如下:
- <html>
- <body>
- <center>
- <h2 style="color: #ff261a;">this is my test page!</h2>
- </center>
- </body>
- </html>
重启Tomcat服务器, 然后浏览器访问http://localhost/test如下图所示:
PS: Tomcat默认端口是8080,我更改了端口号,如若你们为更改,正确的访问地址是localhost:8080/test
OK,成功访问。
SpringMVC+Spring整合
这个就十分简单了, 配置applicationContext.xml这个Spring的配置文件如下:
- <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-4.1.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
- <!-- 自动扫描 -->
- <context:component-scan base-package="com.ssh">
- <!-- 扫描时跳过 @Controller 注解的JAVA类(控制器) -->
- <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"
- />
- </context:component-scan>
- </beans>
完善web.xml配置文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- version="3.0">
- <!-- 地址为http://localhost:8080/ 显示的默认网页-->
- <welcome-file-list>
- <welcome-file>/index.jsp</welcome-file>
- </welcome-file-list>
- <!--加载Spring的配置文件到上下文中去-->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- classpath:META-INF/applicationContext.xml
- </param-value>
- </context-param>
- <!-- spring MVC config start-->
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <!-- 此处指向的的是SpringMVC的配置文件 -->
- <param-value>classpath:META-INF/spring-mvc.xml</param-value>
- </init-param>
- <!--配置容器在启动的时候就加载这个servlet并实例化-->
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!-- spring MVC config end-->
- <!-- Spring监听器 -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- 字符集过滤 -->
- <filter>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>forceEncoding</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
web.xml配置文件中更改了三处:引入Spring配置文件 Spring的监听器 以及 字符集过滤
OK,Spring+SpringMVC配置完成,下面我们开始测试:
在service写一个TestServiceImpl实现TestService接口并实现其test()方法, 代码如下:
- package com.ssh.service.impl;
- import com.ssh.service.TestService;
- import org.springframework.stereotype.Service;
- /**
- * Created by XRog
- * On 2/1/2017.12:58 AM
- */
- @Service public class TestServiceImpl implements TestService {
- public String test() {
- return "test";
- }
- }
PS:这里注意写@Service注解
MainController控制器更改如下:
- package com.ssh.controller;
- import com.ssh.service.TestService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- /**
- * Created by XRog
- * On 2/1/2017.12:36 AM
- */
- @Controller
- public class MainController {
- @Autowired
- private TestService testService;
- @RequestMapping(value = "test", method = RequestMethod.GET)
- public String test(){
- // 实际返回的是views/test.jsp ,spring-mvc.xml中配置过前后缀
- return "test";
- }
- @RequestMapping(value = "springtest", method = RequestMethod.GET)
- public String springTest(){
- return testService.test();
- }
- }
控制器这里我们运用了Spring的依赖注入自动装配。
在浏览器中输入地址http://localhost/springtest调用springtest方法
yes,成功返回,说明我们之前的配置没问题
Spring+SpringMVC+hibernate整合
好了,现在就缺hibernate这个框架了。。 我先给大家看些我搭建好之后的结构图吧
我们想来编写config.properties这个配置文件,里面存放的是hibernate的一些配置
- #database connection config
- jdbc.driver = com.mysql.jdbc.Driver
- jdbc.url = jdbc:mysql://?????:3306/ssh?useUnicode=true&characterEncoding=utf-8
- jdbc.username = root
- jdbc.password = ???
- #hibernate config
- hibernate.dialect = org.hibernate.dialect.MySQLDialect
- hibernate.show_sql = true
- hibernate.format_sql = true
- hibernate.hbm2ddl.auto = update
这里连接数据库的参数由于我是连接我晚上的数据库,因此我数据库地址和密码打了“???”,你们连接时改成自己本地的就OK了
下面配置hibernate,这里我为了方便,就直接写进applicationContext.xml里面。配置后的applicationContext.xml如下:
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-4.1.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
- <!--********************************************配置Spring***************************************-->
- <!-- 自动扫描 -->
- <context:component-scan base-package="com.ssh">
- <!-- 扫描时跳过 @Controller 注解的JAVA类(控制器) -->
- <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
- </context:component-scan>
- <!--********************************************配置hibernate********************************************-->
- <!--扫描配置文件(这里指向的是之前配置的那个config.properties)-->
- <context:property-placeholder location="classpath:/config.properties" />
- <!--配置数据源-->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass" value="${jdbc.driver}" /> <!--数据库连接驱动-->
- <property name="jdbcUrl" value="${jdbc.url}" /> <!--数据库地址-->
- <property name="user" value="${jdbc.username}" /> <!--用户名-->
- <property name="password" value="${jdbc.password}" /> <!--密码-->
- <property name="maxPoolSize" value="40" /> <!--最大连接数-->
- <property name="minPoolSize" value="1" /> <!--最小连接数-->
- <property name="initialPoolSize" value="10" /> <!--初始化连接池内的数据库连接-->
- <property name="maxIdleTime" value="20" /> <!--最大空闲时间-->
- </bean>
- <!--配置session工厂-->
- <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="packagesToScan" value="com.ssh.entity" />
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <!--hibernate根据实体自动生成数据库表-->
- <prop key="hibernate.dialect">${hibernate.dialect}</prop> <!--指定数据库方言-->
- <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <!--在控制台显示执行的数据库操作语句-->
- <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <!--在控制台显示执行的数据哭操作语句(格式)-->
- </props>
- </property>
- </bean>
- <!-- 事物管理器配置 -->
- <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- </beans>
OK,到了这里,配置结束。下面进入测试阶段
实体类(entity):
- package com.ssh.entity;
- import lombok.Data;
- import javax.persistence.*;
- /**
- * Created by XRog
- * On 2/2/2017.2:03 PM
- */
- @Data
- @Entity
- @Table(name = "Person")
- public class Person {
- @Id
- @GeneratedValue
- private Long id;
- @Column(name = "created")
- private Long created = System.currentTimeMillis();
- @Column(name = "username")
- private String username;
- @Column(name = "address")
- private String address;
- @Column(name = "phone")
- private String phone;
- @Column(name = "remark")
- private String remark;
- }
PS:我这里用了一个@Data注解,此注解会自动生成get方法,set方法,toString方法等一系列方法,功能十分强大,不过需要安装插件以及导包, 有兴趣的可以百度下
当然,你也可以手动编写get/set/构造方法。
数据库访问层(repository):
- package com.ssh.repository;
- import java.io.Serializable;
- import java.util.List;
- /**
- * Created by XRog
- * On 2/2/2017.2:28 PM
- */
- public interface DomainRepository < T,
- PK extends Serializable > {
- T load(PK id);
- T get(PK id);
- List < T > findAll();
- void persist(T entity);
- PK save(T entity);
- void saveOrUpdate(T entity);
- void delete(PK id);
- void flush();
- }
- package com.ssh.repository;
- import com.ssh.entity.Person;
- /**
- * Created by XRog
- * On 2/2/2017.2:25 PM
- */
- public interface PersonRepository extends DomainRepository < Person,
- Long > {}
- package com.ssh.repository.impl;
- import com.ssh.repository.PersonRepository;
- import com.ssh.entity.Person;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Repository;
- import java.util.List;
- /**
- * Created by XRog
- * On 2/2/2017.2:30 PM
- */
- @Repository public class PersonRepositoryImpl implements PersonRepository {@Autowired private SessionFactory sessionFactory;
- private Session getCurrentSession() {
- return this.sessionFactory.openSession();
- }
- public Person load(Long id) {
- return (Person) getCurrentSession().load(Person.class, id);
- }
- public Person get(Long id) {
- return (Person) getCurrentSession().get(Person.class, id);
- }
- public List < Person > findAll() {
- return null;
- }
- public void persist(Person entity) {
- getCurrentSession().persist(entity);
- }
- public Long save(Person entity) {
- return (Long) getCurrentSession().save(entity);
- }
- public void saveOrUpdate(Person entity) {
- getCurrentSession().saveOrUpdate(entity);
- }
- public void delete(Long id) {
- Person person = load(id);
- getCurrentSession().delete(person);
- }
- public void flush() {
- getCurrentSession().flush();
- }
- }
PS:我这里显示写了一个比较通用的接口,其他所有接口皆继承此接口, 再编写实现类
注意:我这里写的session产生是调用的SessionFactory的openSession()这个方法。之前使用getCurrentSession()一直报错,后来百度了一下才知道,hibernate3版本可以使用getCurrentSession()来创建session,而hibernate4版本则不行。
服务层(service):
- package com.ssh.service;
- import com.ssh.entity.Person;
- /**
- * Created by XRog
- * On 2/2/2017.2:39 PM
- */
- public interface PersonService {
- Long savePerson();
- }
- package com.ssh.service.impl;
- import com.ssh.entity.Person;
- import com.ssh.repository.PersonRepository;
- import com.ssh.service.PersonService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * Created by XRog
- * On 2/2/2017.2:40 PM
- */
- @Service
- public class PersonServiceImpl implements PersonService {
- @Autowired
- private PersonRepository personRepository;
- public Long savePerson() {
- Person person = new Person();
- person.setUsername("XRog");
- person.setPhone("18381005946");
- person.setAddress("chenDu");
- person.setRemark("this is XRog");
- return personRepository.save(person);
- }
- }
控制层(controller):
- package com.ssh.controller;
- import com.ssh.entity.Person;
- import com.ssh.service.PersonService;
- import com.ssh.service.TestService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- /**
- * Created by XRog
- * On 2/1/2017.12:36 AM
- */
- @Controller
- public class MainController {
- @Autowired
- private PersonService personService;
- @RequestMapping(value = "savePerson", method = RequestMethod.GET)
- @ResponseBody
- public String savePerson(){
- personService.savePerson();
- return "success!";
- }
- }
OK,编写完毕,我们重启下服务器然后测试:
我们在看下数据库,跟我们插入的数据对比下
OK,测试完毕,十分成功
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持PHPERZ!
来源: http://www.phperz.com/article/17/1128/358585.html