springmvc+mybatis+maven整合(添加)

来源:互联网 发布:厨房电器 知乎 编辑:程序博客网 时间:2024/05/22 12:17

项目目录

创建数据表user


jar包

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.3</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.7</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.24</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.6.RELEASE</version><scope>test</scope></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.10</version></dependency><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.6.RELEASE</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</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>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency></dependencies>


搭建配置文件(web.xml)

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><servlet><servlet-name>ssm</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!-- config下的spring-的所有xml文件 --><param-value>classpath:config/spring-*.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>ssm</servlet-name><!--会拦截URL中带“/”的请求。 --><url-pattern>/</url-pattern></servlet-mapping><!-- 乱码过滤器 --><filter><filter-name>characterEncoding</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></filter><filter-mapping><filter-name>characterEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>



spring-dao.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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd        http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.gy.service" /><context:component-scan base-package="com.gy.activity" /><!-- 2:数据库连接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test" /><property name="user" value="root" /><property name="password" value="123456" /><!-- 初始化连接大小 --><property name="initialPoolSize" value="0" /><!-- 连接最大数量 --><property name="maxPoolSize" value="10" /><!-- 连接最小数量 --><property name="minPoolSize" value="0" /><!-- 连接增涨数量 --><property name="acquireIncrement" value="5" /><!-- 最大空闲时间 --><property name="maxIdleTime" value="60" /><!-- 超时时间 --><property name="checkoutTimeout" value="3000" /></bean><!-- spring和MyBatis整合 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><!-- <property name="mapperLocations" value="classpath:mapper/*.xml"></property> --><property name="mapperLocations" value="classpath:com/gy/mapper/UserMapper.xml" /><property name="typeAliasesPackage" value="com.gy.entity"></property><!--加载mybatis配置文件 --><!-- <property name="configLocation" value="classpath:mybatis-config.xml"></property> --></bean><!-- 查找类路径下的映射器并自动将它们创建成 MapperFactoryBean,即Mapper接口的代理类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.gy.mapper" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean></beans>
spring-service.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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd        http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入数据库的连接池 --><property name="dataSource" ref="dataSource" /></bean><!-- 配置基于注解的声明式事物, 默认使用注解来控制事务行为 --><tx:annotation-driven transaction-manager="transactionManager" /></beans>

spring-web(视图解析器)

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="        http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd">                <context:component-scan base-package="com.gy.controller"/>        <mvc:annotation-driven/>        <mvc:default-servlet-handler/>        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <!-- 前缀 -->        <property name="prefix">        <value>/WEB-INF/views/</value>        </property>        <!-- 后缀 -->        <property name="suffix">        <value>.jsp</value>        </property>        </bean>                </beans>

创建实体类(com.gy.entity.User.xml)

package com.gy.entity;public class User {private Integer id;private String name;private String password;public Integer getId() {return id == null ? 0 : id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", password=" + password + "]";}}

com.gy.mapper.UserMapper.xml(映射文件)


<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.gy.mapper.UserMapper"><insert id="save" parameterType="com.gy.entity.User">INSERT INTO user<trim prefix="(" suffixOverrides="," suffix=")"><if test="id!=null">id,</if><if test="name!=null">name,</if><if test="password!=null">password,</if></trim><trim prefix="VALUES(" suffix=")" suffixOverrides=","><if test="id!=null">#{id},</if><if test="name!=null">#{name},</if><if test="password!=null">#{password},</if></trim></insert></mapper>

com.gy.mapper.UserMapper

package com.gy.mapper;public interface UserMapper {int save(Object object);}
com.gy.activity.UserActivity

package com.gy.activity;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import com.gy.entity.User;import com.gy.mapper.UserMapper;@Repositorypublic class UserActivity {@Autowiredprivate UserMapper userMapper;@Transactionalpublic int save(User user) {return userMapper.save(user);}}



com.gy.service.UserService

package com.gy.service;import com.gy.entity.User;public interface UserService {     int save(User user);}

com.gy.service.impl.UserServiceImpl

package com.gy.service.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.gy.activity.UserActivity;import com.gy.entity.User;import com.gy.service.UserService;@Servicepublic class UserServiceImpl implements UserService{@Autowiredprivate UserActivity userActivity;public int save(User user) {return userActivity.save(user);}}
com.gy.controller.UserController

package com.gy.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import com.gy.entity.User;import com.gy.service.UserService;@RestControllerpublic class UserController {@Autowiredprivate UserService userService;@GetMapping(value="/save")public Object save(User user,HttpServletRequest request){return userService.save(user);}}

测试(1代表插入成功)


数据库(插入成功)