eclipse 使用maven 搭建spring + springMVC + spring Data + jpa 框架分析

无情 阅读:404 2021-03-31 21:22:14 评论:0

第一项目结构展示:


项目中所引用到的jar文件

<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/xsd/maven-4.0.0.xsd"> 
  <modelVersion>4.0.0</modelVersion> 
  <groupId>springdataSample</groupId> 
  <artifactId>springdataSample</artifactId> 
  <version>0.0.1-SNAPSHOT</version> 
  <packaging>war</packaging> 
   
  <dependencies> 
        <dependency> 
            <groupId>junit</groupId> 
            <artifactId>junit</artifactId> 
            <version>3.8.1</version> 
            <scope>test</scope> 
        </dependency> 
        <dependency> 
            <groupId>javax.servlet</groupId> 
            <artifactId>javax.servlet-api</artifactId> 
            <version>3.1.0</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-webmvc</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-context</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-beans</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-web</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-jdbc</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-aop</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-tx</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-core</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-orm</artifactId> 
            <version>4.1.3.RELEASE</version> 
        </dependency> 
 
        <dependency> 
            <groupId>org.hibernate</groupId> 
            <artifactId>hibernate-core</artifactId> 
            <version>4.3.11.Final</version> 
        </dependency> 
        <dependency> 
            <groupId>org.hibernate</groupId> 
            <artifactId>hibernate-entitymanager</artifactId> 
            <version>4.3.11.Final</version> 
        </dependency> 
        <dependency> 
            <groupId>org.hibernate</groupId> 
            <artifactId>hibernate-ehcache</artifactId> 
            <version>4.3.11.Final</version> 
        </dependency> 
        <dependency> 
            <groupId>mysql</groupId> 
            <artifactId>mysql-connector-java</artifactId> 
            <version>5.1.35</version> 
        </dependency> 
        <dependency> 
            <groupId>commons-dbcp</groupId> 
            <artifactId>commons-dbcp</artifactId> 
            <version>1.2.2</version> 
        </dependency> 
        <dependency> 
            <groupId>javax.servlet</groupId> 
            <artifactId>jstl</artifactId> 
            <version>1.2</version> 
        </dependency> 
        <dependency> 
            <groupId>org.slf4j</groupId> 
            <artifactId>slf4j-api</artifactId> 
            <version>1.7.12</version> 
        </dependency> 
        <dependency> 
            <groupId>com.jolbox</groupId> 
            <artifactId>bonecp</artifactId> 
            <version>0.8.0.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>com.jolbox</groupId> 
            <artifactId>bonecp-spring</artifactId> 
            <version>0.8.0.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>com.jolbox</groupId> 
            <artifactId>bonecp-provider</artifactId> 
            <version>0.8.0-alpha1</version> 
        </dependency> 
        <dependency> 
            <groupId>taglibs</groupId> 
            <artifactId>standard</artifactId> 
            <version>1.1.2</version> 
        </dependency> 
        <dependency> 
            <groupId>org.aspectj</groupId> 
            <artifactId>aspectjweaver</artifactId> 
            <version>1.8.7</version> 
        </dependency> 
        <dependency> 
            <groupId>cglib</groupId> 
            <artifactId>cglib-nodep</artifactId> 
            <version>3.2.0</version> 
        </dependency> 
        <dependency> 
            <groupId>commons-collections</groupId> 
            <artifactId>commons-collections</artifactId> 
            <version>3.2.1</version> 
        </dependency> 
        <dependency> 
            <groupId>ant</groupId> 
            <artifactId>ant</artifactId> 
            <version>1.6.5</version> 
        </dependency> 
        <dependency> 
            <groupId>org.apache.avro</groupId> 
            <artifactId>avro</artifactId> 
            <version>1.7.7</version> 
        </dependency> 
        <dependency> 
            <groupId>commons-beanutils</groupId> 
            <artifactId>commons-beanutils</artifactId> 
            <version>1.9.2</version> 
        </dependency> 
        <dependency> 
            <groupId>commons-fileupload</groupId> 
            <artifactId>commons-fileupload</artifactId> 
            <version>1.3.1</version> 
        </dependency> 
        <dependency> 
            <groupId>commons-io</groupId> 
            <artifactId>commons-io</artifactId> 
            <version>2.4</version> 
        </dependency> 
        <dependency> 
            <groupId>org.apache.commons</groupId> 
            <artifactId>commons-lang3</artifactId> 
            <version>3.4</version> 
        </dependency> 
        <dependency> 
            <groupId>dom4j</groupId> 
            <artifactId>dom4j</artifactId> 
            <version>1.6.1</version> 
        </dependency> 
        <dependency> 
            <groupId>net.sf.ezmorph</groupId> 
            <artifactId>ezmorph</artifactId> 
            <version>1.0.6</version> 
        </dependency> 
        <dependency> 
            <groupId>org.freemarker</groupId> 
            <artifactId>freemarker</artifactId> 
            <version>2.3.23</version> 
        </dependency> 
        <dependency> 
            <groupId>com.google.guava</groupId> 
            <artifactId>guava</artifactId> 
            <version>18.0</version> 
        </dependency> 
        <dependency> 
            <groupId>org.javassist</groupId> 
            <artifactId>javassist</artifactId> 
            <version>3.20.0-GA</version> 
        </dependency> 
        <dependency> 
            <groupId>org.jboss.logging</groupId> 
            <artifactId>jboss-logging</artifactId> 
            <version>3.3.0.Final</version> 
        </dependency> 
        <!-- jackson --> 
        <dependency> 
            <groupId>com.fasterxml.jackson.core</groupId> 
            <artifactId>jackson-databind</artifactId> 
            <version>2.5.0</version> 
        </dependency> 
        <dependency> 
            <groupId>com.fasterxml.jackson.core</groupId> 
            <artifactId>jackson-core</artifactId> 
            <version>2.5.0</version> 
        </dependency> 
        <dependency> 
            <groupId>com.fasterxml.jackson.core</groupId> 
            <artifactId>jackson-annotations</artifactId> 
            <version>2.5.0</version> 
        </dependency> 
        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> 
        <dependency> 
            <groupId>org.springframework.data</groupId> 
            <artifactId>spring-data-jpa</artifactId> 
            <version>1.7.1.RELEASE</version> 
        </dependency> 
         
    </dependencies> 
    <build> 
        <plugins> 
            <!-- 编码和编译 --> 
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId> 
                <artifactId>maven-compiler-plugin</artifactId> 
                <version>2.3.2</version> 
                <configuration> 
                    <source>1.7</source> 
                    <target>1.7</target> 
                    <encoding>utf8</encoding> 
                </configuration> 
            </plugin> 
        </plugins> 
        
    </build> 
</project>

spring配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:cache="http://www.springframework.org/schema/cache" 
    xmlns:jaxws="http://cxf.apache.org/jaxws" 
    xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
    xsi:schemaLocation=" 
                    http://www.springframework.org/schema/beans 
                    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
                    http://www.springframework.org/schema/tx  
                    http://www.springframework.org/schema/tx/spring-tx-3.1.xsd 
                    http://www.springframework.org/schema/aop  
                    http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
                    http://www.springframework.org/schema/context       
                    http://www.springframework.org/schema/context/spring-context-3.1.xsd 
                    http://www.springframework.org/schema/cache  
                    http://www.springframework.org/schema/cache/spring-cache-3.1.xsd 
                    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd  
                    http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"  
                    default-lazy-init="true"> 
 
    <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 --> 
    <context:component-scan base-package="com.zzg.springdata"> 
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> 
    </context:component-scan> 
 
    <!-- 属性文件位置 --> 
    <context:property-placeholder location="classpath:jdbc.properties" /> 
 
     
    <!-- 数据源 --> 
    <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" 
        destroy-method="close"> 
        <!-- 数据库驱动 --> 
        <property name="driverClass" value="${jdbc.driverClassName}" /> 
        <!-- 相应驱动的jdbcUrl--> 
        <property name="jdbcUrl" value="${jdbc.url}" /> 
        <!-- 数据库的用户名 --> 
        <property name="username" value="${jdbc.username}" /> 
        <!-- 数据库的密码 --> 
        <property name="password" value="${jdbc.password}" /> 
    </bean> 
 
    <!-- JPA实体管理器工厂 --> 
    <bean id="entityManagerFactory" 
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
        <property name="dataSource" ref="dataSource" /> 
        <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" /> 
        <!-- 加入定制化包路径 --> 
        <property name="packagesToScan" value="com.zzg.springdata.model" /> 
 
        <property name="jpaProperties"> 
            <props> 
                <prop key="hibernate.current_session_context_class">thread</prop> 
                <prop key="hibernate.hbm2ddl.auto">update</prop><!-- validate/update/create --> 
                <prop key="hibernate.show_sql">false</prop> 
                <prop key="hibernate.format_sql">false</prop> 
                 
                <!-- 建表的命名规则 --> 
                <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop> 
                 
            </props> 
        </property> 
    </bean> 
     
    <!-- 设置JPA实现厂商的特定属性 --> 
    <bean id="hibernateJpaVendorAdapter" 
        class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
        <property name="databasePlatform" value="${hibernate.dialect}"/> 
    </bean> 
     
    <!-- Jpa 事务配置 --> 
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
        <property name="entityManagerFactory" ref="entityManagerFactory"/> 
    </bean> 
 
   <!-- 自动扫描并注入Spring Data JPA -->  
    <jpa:repositories base-package="com.zzg.springdata.dao"  transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/> 
     
    <!-- 使用annotation定义事务 --> 
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> 
</beans>

springMVC配置文件(spring-mvc.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="  
                http://www.springframework.org/schema/beans  
                http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
                http://www.springframework.org/schema/context  
                http://www.springframework.org/schema/context/spring-context-3.1.xsd  
                http://www.springframework.org/schema/mvc  
                http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd" > 
     
    <!-- 启用SpringMVC的注解功能,它会自动注册HandlerMapping、HandlerAdapter、ExceptionResolver的相关实例 --> 
    <mvc:annotation-driven /> 
    <!-- SpringMVC的扫描范围 --> 
    <context:component-scan base-package="com.zzg.springdata.controller" use-default-filters="false"> 
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> 
    </context:component-scan> 
     
    <!-- 默认访问跳转到登录页面,即定义无Controller的path<->view直接映射  
    <mvc:view-controller path="/" view-name="redirect:/login"/> 
    --> 
     
    <!-- 静态文件访问 --> 
    <!-- <mvc:resources mapping="/resources/**" location="/resources/" /> --> 
     
    <!-- 用于返回json格式 --> 
    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">     
        <property name="supportedMediaTypes">     
            <list> 
                <value>application/x-www-form-urlencoded;charset=UTF-8</value> 
            </list> 
        </property> 
    </bean> 
  
     <!-- 完成请求和注解POJO的映射 --> 
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
         <property name="messageConverters"> 
            <list> 
                <ref bean="mappingJacksonHttpMessageConverter" /> 
            </list> 
        </property> 
    </bean> 
     
    <!-- 配置SpringMVC的视图解析器 -->  
    <!-- 其viewClass属性的默认值就是org.springframework.web.servlet.view.JstlView -->   
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> --> 
        <property name="prefix" value="/" /> 
        <property name="suffix" value=".html" /> 
    </bean> 
     
    <!-- 总错误处理--> 
<!--     <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">   
        <property name="defaultErrorView"> 
            <value>/base/error</value> 
        </property> 
        <property name="defaultStatusCode"> 
            <value>500</value> 
        </property> 
        <property name="warnLogCategory"> 
            <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver</value>   
        </property> 
    </bean> --> 
     
    <!-- 静态资源加载 --> 
    <mvc:resources location="/css/" mapping="/css/**" /> 
     
    <mvc:resources location="/images/" mapping="/images/**" /> 
    <mvc:resources location="/ATTACHMENT/" mapping="/ATTACHMENT/**" /> 
     
</beans>

MySQL 连接配置文件

jdbc.driverClassName=com.mysql.jdbc.Driver 
 
jdbc.url=jdbc\:mysql\://localhost\:3306/cms_website?useUnicode\=true&characterEncoding\=UTF-8 
 
jdbc.username=root 
 
jdbc.password=123456 
 
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect 
 
BoneCP.idleConnectionTestPeriod=60 
 
BoneCP.idleMaxAge=60 
 
BoneCP.maxConnectionsPerPartition=5 
 
BoneCP.minConnectionsPerPartition=1 
 
BoneCP.partitionCount=3 
 
BoneCP.acquireIncrement=2   
 
BoneCP.statementsCacheSize=0  
   
BoneCP.releaseHelperThreads=3

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
  <display-name>Archetype Created Web Application</display-name> 
  <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value>classpath*:applicationContext*.xml</param-value> 
    </context-param> 
     
     <!-- 防止发生java.beans.Introspector内存泄露,应将它配置在ContextLoaderListener的前面 -->   
    <!-- 详细描述见http://blog.csdn.net/jadyer/article/details/11991457 -->   
    <listener>   
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>   
    </listener>   
     
     <!-- 实例化Spring容器 -->   
    <!-- 应用启动时,该监听器被执行,它会读取Spring相关配置文件,其默认会到WEB-INF中查找applicationContext.xml -->   
    <listener> 
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
     
    <!-- 配置编码过滤器 --> 
    <filter> 
        <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
     
    <!-- 配置spring管理OpenEntityManagerInViewFilter--> 
    <!-- OpenEntityManagerInViewFilter会让session一直到view层调用结束后才关闭 
        Spring针对Hibernate的非JPA实现用的是OpenSessionInViewFilter,原理与这个大同小异 
     --> 
    <filter> 
        <filter-name>hibernateFilter</filter-name> 
        <filter-class> 
            org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter 
        </filter-class> 
    </filter> 
    <filter-mapping> 
        <filter-name>hibernateFilter</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
     
    <!-- 用默认的servlet来处理资源 --> 
    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.jpg</url-pattern>     
    </servlet-mapping>  
    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.png</url-pattern>     
    </servlet-mapping>      
    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.gif</url-pattern>     
    </servlet-mapping>  
    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.woff</url-pattern>     
    </servlet-mapping>  
    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.ttf</url-pattern>     
    </servlet-mapping>           
    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.map</url-pattern>     
    </servlet-mapping>       
    <servlet-mapping>       
        <servlet-name>default</servlet-name>    
        <url-pattern>*.js</url-pattern>    
    </servlet-mapping>   
    <servlet-mapping>        
        <servlet-name>default</servlet-name>       
        <url-pattern>*.css</url-pattern>      
    </servlet-mapping>   
    <servlet-mapping>        
        <servlet-name>default</servlet-name>       
        <url-pattern>*.html</url-pattern>      
    </servlet-mapping> 
     
    <!-- SpringMVC核心分发器 --> 
    <servlet> 
        <servlet-name>dispatcherServlet</servlet-name> 
        <servlet-class> 
            org.springframework.web.servlet.DispatcherServlet 
        </servlet-class> 
        <init-param> 
            <param-name>contextConfigLocation</param-name> 
            <param-value>classpath*:/spring-mvc.xml</param-value> 
        </init-param> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>dispatcherServlet</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 
 
    <welcome-file-list> 
        <welcome-file>/index.html</welcome-file> 
    </welcome-file-list> 
</web-app>

1、实体层(model)

package com.zzg.springdata.model; 
 
import java.io.Serializable; 
 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 
 
@Entity 
@Table(name = "tb_user") 
public class User implements Serializable { 
 
	/** 
	 *  
	 */ 
	private static final long serialVersionUID = 1L; 
	@Id 
	@GeneratedValue(strategy = GenerationType.IDENTITY) 
	@Column(name = "id") 
	private Long id; 
	 
	@Column(name = "create_time") 
	private String createTime; 
	 
	@Column(name = "last_login_time") 
	private String lastLoginTime; 
	 
	@Column(name = "login_name") 
	private String loginName; 
	 
	@Column(name = "password") 
	private String password; 
	 
	@Column(name = "real_name") 
	private String realName; 
	 
	@Column(name = "role") 
	private String role; 
	 
	@Column(name = "age") 
	private Integer age; 
	 
	@Column(name = "name") 
	private String name; 
 
	public Long getId() { 
		return id; 
	} 
 
	public void setId(Long id) { 
		this.id = id; 
	} 
 
	public String getCreateTime() { 
		return createTime; 
	} 
 
	public void setCreateTime(String createTime) { 
		this.createTime = createTime; 
	} 
 
	public String getLastLoginTime() { 
		return lastLoginTime; 
	} 
 
	public void setLastLoginTime(String lastLoginTime) { 
		this.lastLoginTime = lastLoginTime; 
	} 
 
	public String getLoginName() { 
		return loginName; 
	} 
 
	public void setLoginName(String loginName) { 
		this.loginName = loginName; 
	} 
 
	public String getPassword() { 
		return password; 
	} 
 
	public void setPassword(String password) { 
		this.password = password; 
	} 
 
	public String getRealName() { 
		return realName; 
	} 
 
	public void setRealName(String realName) { 
		this.realName = realName; 
	} 
 
	public String getRole() { 
		return role; 
	} 
 
	public void setRole(String role) { 
		this.role = role; 
	} 
 
	public Integer getAge() { 
		return age; 
	} 
 
	public void setAge(Integer age) { 
		this.age = age; 
	} 
 
	public String getName() { 
		return name; 
	} 
 
	public void setName(String name) { 
		this.name = name; 
	} 
	 
	 
 
} 


2、Dao层(dao)

package com.zzg.springdata.dao; 
 
import org.springframework.data.jpa.repository.JpaRepository; 
 
import com.zzg.springdata.model.User; 
 
public interface UserDao extends JpaRepository<User, Long> { 
 
} 


3、service层(service)

package com.zzg.springdata.service; 
 
 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 
import org.springframework.transaction.annotation.Transactional; 
 
import com.zzg.springdata.dao.UserDao; 
import com.zzg.springdata.model.User; 
 
@Service 
@Transactional 
public class UserService { 
	@Autowired 
    private UserDao userDao; 
     
    public String add(User user){ 
        userDao.save(user); 
        return "添加成功!"; 
    } 
     
    public String addUser(){ 
        User user = new User(); 
        user.setAge(18);        
        user.setCreateTime("2017-03-07 00:53:12"); 
        user.setLastLoginTime("2017-03-07 00:54:12"); 
        user.setLoginName("zzg"); 
        user.setName("小周"); 
        user.setPassword("123456"); 
        user.setRealName("周*刚"); 
        user.setRole("一级管理员"); 
        userDao.save(user); 
        return "添加成功!"; 
    } 
     
    public User getOneUser(Long id){ 
        return userDao.findOne(id); 
    } 
} 


4、controller层(controller)

package com.zzg.springdata.controller; 
 
import javax.servlet.http.HttpServletRequest; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.http.MediaType; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.PathVariable; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.ResponseBody; 
 
import com.zzg.springdata.model.User; 
import com.zzg.springdata.service.UserService; 
 
@Controller     
public class UserController { 
	 	@Autowired 
	    private UserService userService; 
	     
	    @RequestMapping(value = "/saveUser", 
	            method = RequestMethod.GET 
	           ) 
	    @ResponseBody 
	    public String saveUser(HttpServletRequest  request){ 
	    	User user =new User(); 
	    	 
	    	user.setAge(Integer.parseInt(request.getParameter("age"))); 
	    	user.setCreateTime(request.getParameter("createTime")); 
	    	user.setLastLoginTime(request.getParameter("lastLoginTime")); 
	    	user.setName(request.getParameter("name")); 
	    	user.setPassword(request.getParameter("password")); 
	    	user.setRealName(request.getParameter("realName")); 
	    	user.setRole(request.getParameter("role")); 
	    	user.setLoginName(request.getParameter("loginName")); 
	    	System.out.println(user.getCreateTime()+"//"+user.getLastLoginTime()); 
	        return userService.add(user); 
	    } 
	     
	    @RequestMapping(value = "/addUser", 
	            method = RequestMethod.GET 
	           ) 
	    @ResponseBody 
	    public String add(){ 
	        return userService.addUser(); 
	    } 
	     
	    @RequestMapping(value = "/user", 
	            method = RequestMethod.GET 
	           ) 
	    @ResponseBody 
	    public User add(Long id){ 
	        return userService.getOneUser(id); 
	    } 
} 

数据请求结果展示:

1、新增用户数据:/saveUser



2、添加用户数据:/add


3、查询特点用户信息:/user



声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

一个IT知识分享的公众号