Maven管理,SpringMVC+Spring+Mybatis环境整合

来源:互联网 发布:天刀淘宝刷白发多少钱 编辑:程序博客网 时间:2024/05/22 00:21

ps.本文旨在提供SSM环境整合的资源文件配置供大家参考,而并非一个完整教你一步步搭建一个SSM项目的博文。

这是整合SpringMVC+Spring+Mybatis的小项目,Maven管理.
希望对大家有帮助,如有错误或疏漏的地方,请大家指出,在这里先谢谢了.

ps.文中使用的jar包与配置文件,可能与大家实际开发项目情况有偏差,请自行判断修改.

1.目录结构

这是本项目的目录结构.
这里写图片描述
各目录所放的文件的话,大家既然学到SSM了,基本也不用我多嘴解释了.
注意 :
mapper中,存放数据库操作方法的xml,存放在dao中每个方法对应的sql,都在这里配置.
controller中,存放的是MVC中的C,控制层.

2.pom.xml

pom.xml中jar的版本要注意,这里贴出mvnrepository
http://mvnrepository.com/
若是有版本不兼容等问题,可去mvnrepository中查询指定jar包的其他版本.
ps.该文件的内容仅提供参考(大家可自行选择需要的包,我就不删减代码内容了).

<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></groupId>  <artifactId></artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>Maven Webapp</name>  <url>http://maven.apache.org</url><dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>javax.servlet-api</artifactId>      <version>3.0.1</version>      <!-- 只在编译时和测试时运行 -->      <scope>provided</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->    <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>5.1.42</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->    <dependency>     <groupId>org.mybatis</groupId>     <artifactId>mybatis</artifactId>     <version>3.2.8</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis-spring</artifactId>      <version>1.3.0</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-aspects</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-expression</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context-support</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-jdbc</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-aop</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-core</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-beans</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->    <dependency>      <groupId>aopalliance</groupId>      <artifactId>aopalliance</artifactId>      <version>1.0</version>    </dependency>    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->    <dependency>      <groupId>com.mchange</groupId>      <artifactId>c3p0</artifactId>      <version>0.9.5.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->    <dependency>     <groupId>javax.servlet</groupId>     <artifactId>jstl</artifactId>     <version>1.2</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-tx</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-web</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-webmvc</artifactId>      <version>4.3.9.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->    <dependency>      <groupId>com.fasterxml.jackson.core</groupId>      <artifactId>jackson-databind</artifactId>      <version>2.8.9</version>    </dependency>    <!-- Map工具类 -->    <dependency>      <groupId>commons-collections</groupId>      <artifactId>commons-collections</artifactId>      <version>3.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->    <dependency>    <groupId>commons-fileupload</groupId>    <artifactId>commons-fileupload</artifactId>    <version>1.3.1</version>    </dependency>    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->    <dependency>    <groupId>commons-io</groupId>    <artifactId>commons-io</artifactId>    <version>2.4</version>    </dependency></dependencies><build>    <finalName>FakeFacebook</finalName>    <plugins>        <plugin>            <groupId>org.apache.tomcat.maven</groupId>            <artifactId>tomcat7-maven-plugin</artifactId>            <version>2.2</version>            <executions>                <execution>                    <!-- 打包的时候运行 -->                    <phase>package</phase>                    <goals>                        <goal>run</goal>                    </goals>                </execution>            </executions>        </plugin>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-compiler-plugin</artifactId>            <version>2.3.2</version>            <configuration>                <source>1.8</source>                <target>1.8</target>                <encoding>UTF-8</encoding>            </configuration>        </plugin>    </plugins></build></project>

3.applicationContext.xml

这个配置文件非常重要,我把代码放一起,大家看起来也直观一些.
ps.该文件的内容仅提供参考(代码本身没有错误).

<?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:mvc="http://www.springframework.org/schema/mvc"     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/aop    http://www.springframework.org/schema/aop/spring-aop.xsd    http://www.springframework.org/schema/tx    http://www.springframework.org/schema/tx/spring-tx.xsd    http://www.springframework.org/schema/mvc    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">    <context:annotation-config/>    <context:component-scan base-package="com.facebook" />    <!-- 开启SpringMVC注解模式 -->    <mvc:annotation-driven />    <!-- 静态资源默认servlet配置      (1)加入对静态资源的处理:js,gif,png      (2)允许使用"/"做整体映射    -->    <mvc:default-servlet-handler/>    <!-- 配置jsp 显示ViewResolver -->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />        <property name="prefix" value="/WEB-INF/" />        <property name="suffix" value=".jsp" />    </bean>    <!-- 配置c3p0连接池 -->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="com.mysql.jdbc.Driver"/>        <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/facebook"/>        <property name="user" value="root"/>        <property name="password" value="root"/>        <!-- 若数据库中连接数不足时,一次向数据库服务器申请多少个连接    -->        <property name="acquireIncrement" value="5" />        <!-- 初始化数据库连接时连接的数量 -->        <property name="initialPoolSize" value="10" />        <!-- 数据库连接池中最小的数据库连接数 -->        <property name="minPoolSize" value="10" />         <!-- 数据库连接池中最大的数据库连接数 -->        <property name="maxPoolSize" value="30" />        <!-- 获取连接超时时间 -->        <property name="checkoutTimeout" value="10000" />        <!-- 当获取连接失败重试次数 -->        <property name="acquireRetryAttempts" value="2" />    </bean>    <!-- 配置SqlSessionFactory对象 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">          <property name="dataSource" ref="dataSource"></property>          <property name="configLocation" value="classpath:facebook/mybatisConfig.xml"></property>          <property name="mapperLocations" value="classpath:facebook/mapper/*.xml" />    </bean>    <!-- 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <!-- 注入sqlSessionFactory -->        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />        <!-- 给出需要扫描Dao接口包 -->        <property name="basePackage" value="com.facebook.dao" />    </bean>    <!-- 配置基于注解的声明式事务 -->    <tx:annotation-driven transaction-manager="transactionManager"/>    <!-- 配置事务管理器 -->    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"/>    </bean></beans>

4.mybatisConfig.xml

ps.该文件的内容仅提供参考(代码本身没有输入错误).

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC      "-//mybatis.org//DTD Config 3.0//EN"      "http://mybatis.org/dtd/mybatis-3-config.dtd">  <configuration>      <!--     <mappers>          <mapper resource="facebook/mapper/UserDao.xml"/>      </mappers>    --></configuration> 

5.UserDao.xml

操作数据库的xml,让大家参考参考
ps.该文件的内容仅提供参考(代码本身没有错误).

<?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.facebook.dao.IUserDao">  <!-- 为了返回list 类型而定义的returnMap -->  <resultMap type="com.facebook.model.User" id="UserResult">    <id column="id" jdbcType="INTEGER" property="id"/>    <result column="name" jdbcType="VARCHAR" property="name"/>    <result column="sex" jdbcType="VARCHAR" property="sex"/>    <result column="age" jdbcType="INTEGER" property="age"/>  </resultMap>  <!-- 常用句式 -->  <sql id="columns">id,name,sex,age</sql>  <!-- 登录验证 -->  <!-- id与name的用户输入等问题,已经在前端处理 -->  <select id="loginValidate" parameterType="com.facebook.model.User" resultMap="UserResult">    select <include refid="columns"/> from user where id = #{id} and name = #{name}  </select>  <!-- 用户注册操作 -->  <select id="register" parameterType="com.facebook.model.User">    insert user(id,sex,age,name) value(#{id},#{sex},#{age},#{name})  </select>  <!-- 通过id查询信息 -->  <select id="query" parameterType="Integer" resultMap="UserResult">    select <include refid="columns"/> from user where id = #{id}  </select></mapper>



一个小小的SSM项目供大家参考,GitHub项目地址.
加油,与大家共勉.

原创粉丝点击