林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka

摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+MySql的搭建实例,文章写得很详细,有代码有图片,最后也带有运行的效果。

本文工程免费下载

一、准备工作

1. 首先创建一个表:

  1. CREATE TABLE `t_user` (
  2. `USER_ID` int(11) NOT NULL AUTO_INCREMENT,
  3. `USER_NAME` char(30) NOT NULL,
  4. `USER_PASSWORD` char(10) NOT NULL,
  5. `USER_EMAIL` char(30) NOT NULL,
  6. PRIMARY KEY (`USER_ID`),
  7. KEY `IDX_NAME` (`USER_NAME`)
  8. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

随便插入一些数据:

  1. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (1, '林炳文', '1234567@', 'ling20081005@126.com');
  2. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (2, 'evan', '123', 'fff@126.com');
  3. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (3, 'kaka', 'cadg', 'fwsfg@126.com');
  4. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (4, 'simle', 'cscs', 'fsaf@126.com');
  5. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (5, 'arthur', 'csas', 'fsaff@126.com');
  6. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (6, '小德', 'yuh78', 'fdfas@126.com');
  7. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (7, '小小', 'cvff', 'fsaf@126.com');
  8. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (8, '林林之家', 'gvv', 'lin@126.com');
  9. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (9, '林炳文Evankaka', 'dfsc', 'ling2008@126.com');
  10. INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (10, 'apple', 'uih6', 'ff@qq.com');

二、工程创建

1、Maven工程创建

(1)新建

(2)选择快速框架

(3)输出项目名,包,记得选war(表示web项目,以后可以spingMVC连起来用)

(4)创建好之后

目录如下:

(5)检查下

这三个地方JDK的版本一定要一样!!!!

三、sping+mybatis配置

1、整个工程目录如下:

2、POM文件

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.lin</groupId>
  5. <artifactId>ssm_project</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>war</packaging>
  8. <properties>
  9. <!-- spring版本号 -->
  10. <spring.version>3.2.8.RELEASE</spring.version>
  11. <!-- log4j日志文件管理包版本 -->
  12. <slf4j.version>1.6.6</slf4j.version>
  13. <log4j.version>1.2.12</log4j.version>
  14. <!-- junit版本号 -->
  15. <junit.version>4.10</junit.version>
  16. <!-- mybatis版本号 -->
  17. <mybatis.version>3.2.1</mybatis.version>
  18. </properties>
  19. <dependencies>
  20. <!-- 添加Spring依赖 -->
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-core</artifactId>
  24. <version>${spring.version}</version>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.springframework</groupId>
  28. <artifactId>spring-webmvc</artifactId>
  29. <version>${spring.version}</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework</groupId>
  33. <artifactId>spring-context</artifactId>
  34. <version>${spring.version}</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.springframework</groupId>
  38. <artifactId>spring-context-support</artifactId>
  39. <version>${spring.version}</version>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring-aop</artifactId>
  44. <version>${spring.version}</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework</groupId>
  48. <artifactId>spring-aspects</artifactId>
  49. <version>${spring.version}</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.springframework</groupId>
  53. <artifactId>spring-tx</artifactId>
  54. <version>${spring.version}</version>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.springframework</groupId>
  58. <artifactId>spring-jdbc</artifactId>
  59. <version>${spring.version}</version>
  60. </dependency>
  61. <dependency>
  62. <groupId>org.springframework</groupId>
  63. <artifactId>spring-web</artifactId>
  64. <version>${spring.version}</version>
  65. </dependency>
  66. <!--单元测试依赖 -->
  67. <dependency>
  68. <groupId>junit</groupId>
  69. <artifactId>junit</artifactId>
  70. <version>${junit.version}</version>
  71. <scope>test</scope>
  72. </dependency>
  73. <!-- 日志文件管理包 -->
  74. <!-- log start -->
  75. <dependency>
  76. <groupId>log4j</groupId>
  77. <artifactId>log4j</artifactId>
  78. <version>${log4j.version}</version>
  79. </dependency>
  80. <dependency>
  81. <groupId>org.slf4j</groupId>
  82. <artifactId>slf4j-api</artifactId>
  83. <version>${slf4j.version}</version>
  84. </dependency>
  85. <dependency>
  86. <groupId>org.slf4j</groupId>
  87. <artifactId>slf4j-log4j12</artifactId>
  88. <version>${slf4j.version}</version>
  89. </dependency>
  90. <!-- log end -->
  91. <!--spring单元测试依赖 -->
  92. <dependency>
  93. <groupId>org.springframework</groupId>
  94. <artifactId>spring-test</artifactId>
  95. <version>${spring.version}</version>
  96. <scope>test</scope>
  97. </dependency>
  98. <!--mybatis依赖 -->
  99. <dependency>
  100. <groupId>org.mybatis</groupId>
  101. <artifactId>mybatis</artifactId>
  102. <version>${mybatis.version}</version>
  103. </dependency>
  104. <!-- mybatis/spring包 -->
  105. <dependency>
  106. <groupId>org.mybatis</groupId>
  107. <artifactId>mybatis-spring</artifactId>
  108. <version>1.2.0</version>
  109. </dependency>
  110. <!-- mysql驱动包 -->
  111. <dependency>
  112. <groupId>mysql</groupId>
  113. <artifactId>mysql-connector-java</artifactId>
  114. <version>5.1.29</version>
  115. </dependency>
  116. </dependencies>
  117. </project>

3、java代码-------src/main/java

目录如下:

(1)User.java

对应数据库中表的字段,放在src/main/java下的包com.lin.domain

  1. package com.lin.domain;
  2. /**
  3. * User映射类
  4. *
  5. * @author linbingwen
  6. * @time 2015.5.15
  7. */
  8. public class User {
  9. private Integer userId;
  10. private String userName;
  11. private String userPassword;
  12. private String userEmail;
  13. public Integer getUserId() {
  14. return userId;
  15. }
  16. public void setUserId(Integer userId) {
  17. this.userId = userId;
  18. }
  19. public String getUserName() {
  20. return userName;
  21. }
  22. public void setUserName(String userName) {
  23. this.userName = userName;
  24. }
  25. public String getUserPassword() {
  26. return userPassword;
  27. }
  28. public void setUserPassword(String userPassword) {
  29. this.userPassword = userPassword;
  30. }
  31. public String getUserEmail() {
  32. return userEmail;
  33. }
  34. public void setUserEmail(String userEmail) {
  35. this.userEmail = userEmail;
  36. }
  37. @Override
  38. public String toString() {
  39. return "User [userId=" + userId + ", userName=" + userName
  40. + ", userPassword=" + userPassword + ", userEmail=" + userEmail
  41. + "]";
  42. }
  43. }

(2)UserDao.java

Dao接口类,用来对应mapper文件。放在src/main/java下的包com.lin.dao,内容如下:

  1. package com.lin.dao;
  2. import com.lin.domain.User;
  3. /**
  4. * 功能概要:User的DAO类
  5. *
  6. * @author linbingwen
  7. * @since 2015年9月28日
  8. */
  9. public interface UserDao {
  10. /**
  11. *
  12. * @author linbingwen
  13. * @since 2015年9月28日
  14. * @param userId
  15. * @return
  16. */
  17. public User selectUserById(Integer userId);
  18. }

(2)UserService.java和UserServiceImpl.java

service接口类和实现类,放在src/main/java下的包com.lin.service,内容如下:

UserService.java

  1. package com.lin.service;
  2. import org.springframework.stereotype.Service;
  3. import com.lin.domain.User;
  4. /**
  5. * 功能概要:UserService接口类
  6. *
  7. * @author linbingwen
  8. * @since  2015年9月28日
  9. */
  10. public interface UserService {
  11. User selectUserById(Integer userId);
  12. }

UserServiceImpl.java

  1. package com.lin.service;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Service;
  4. import com.lin.dao.UserDao;
  5. import com.lin.domain.User;
  6. /**
  7. * 功能概要:UserService实现类
  8. *
  9. * @author linbingwen
  10. * @since  2015年9月28日
  11. */
  12. @Service
  13. public class UserServiceImpl implements UserService{
  14. @Autowired
  15. private UserDao userDao;
  16. public User selectUserById(Integer userId) {
  17. return userDao.selectUserById(userId);
  18. }
  19. }

(4)mapper文件

用来和dao文件对应,放在src/main/java下的com.lin.mapper包下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.lin.dao.UserDao">
  5. <!--设置domain类和数据库中表的字段一一对应,注意数据库字段和domain类中的字段名称不致,此处一定要!-->
  6. <resultMap id="BaseResultMap" type="com.lin.domain.User">
  7. <id column="USER_ID" property="userId" jdbcType="INTEGER" />
  8. <result column="USER_NAME" property="userName" jdbcType="CHAR" />
  9. <result column="USER_PASSWORD" property="userPassword" jdbcType="CHAR" />
  10. <result column="USER_EMAIL" property="userEmail" jdbcType="CHAR" />
  11. </resultMap>
  12. <!-- 查询单条记录 -->
  13. <select id="selectUserById" parameterType="int" resultMap="BaseResultMap">
  14. SELECT * FROM t_user WHERE USER_ID = #{userId}
  15. </select>
  16. </mapper>

4、资源配置-------src/main/resources

目录如下:

(1)mybatis配置文件

这里没有什么内容,因为都被放到application.xml中去了,放在src/main/resources下的mybatis文件夹下

mybatis-config.xml内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. </configuration>

(2)数据源配置jdbc.properties

放在src/main/resources下的propertiesy文件夹下

  1. jdbc_driverClassName=com.mysql.jdbc.Driver
  2. jdbc_url=jdbc:mysql://localhost:3306/learning
  3. jdbc_username=root
  4. jdbc_password=christmas258@

(3)Spring配置

这是最重要的:application.xml内容如下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:aop="http://www.springframework.org/schema/aop"
  5. xsi:schemaLocation="
  6. http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8. http://www.springframework.org/schema/aop
  9. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  12. <!-- 引入jdbc配置文件 -->
  13. <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  14. <property name="locations">
  15. <list>
  16. <value>classpath:properties/*.properties</value>
  17. <!--要是有多个配置文件,只需在这里继续添加即可 -->
  18. </list>
  19. </property>
  20. </bean>
  21. <!-- 配置数据源 -->
  22. <bean id="dataSource"
  23. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  24. <!-- 不使用properties来配置 -->
  25. <!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  26. <property name="url" value="jdbc:mysql://localhost:3306/learning" />
  27. <property name="username" value="root" />
  28. <property name="password" value="christmas258@" /> -->
  29. <!-- 使用properties来配置 -->
  30. <property name="driverClassName">
  31. <value>${jdbc_driverClassName}</value>
  32. </property>
  33. <property name="url">
  34. <value>${jdbc_url}</value>
  35. </property>
  36. <property name="username">
  37. <value>${jdbc_username}</value>
  38. </property>
  39. <property name="password">
  40. <value>${jdbc_password}</value>
  41. </property>
  42. </bean>
  43. <!-- 自动扫描了所有的XxxxMapper.xml对应的mapper接口文件,这样就不用一个一个手动配置Mpper的映射了,只要Mapper接口类和Mapper映射文件对应起来就可以了。 -->
  44. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  45. <property name="basePackage"
  46. value="com.lin.dao" />
  47. </bean>
  48. <!-- 配置Mybatis的文件 ,mapperLocations配置**Mapper.xml文件位置,configLocation配置mybatis-config文件位置-->
  49. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  50. <property name="dataSource" ref="dataSource" />
  51. <property name="mapperLocations" value="classpath*:com/lin/mapper/**/*.xml"/>
  52. <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
  53. <!-- <property name="typeAliasesPackage" value="com.tiantian.ckeditor.model"
  54. /> -->
  55. </bean>
  56. <!-- 自动扫描注解的bean -->
  57. <context:component-scan base-package="com.lin.service" />
  58. </beans>

(4)日志打印log4j.properties

就放在src/main/resources

  1. log4j.rootLogger=DEBUG,Console,Stdout
  2. #Console
  3. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  4. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
  5. log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
  6. log4j.logger.java.sql.ResultSet=INFO
  7. log4j.logger.org.apache=INFO
  8. log4j.logger.java.sql.Connection=DEBUG
  9. log4j.logger.java.sql.Statement=DEBUG
  10. log4j.logger.java.sql.PreparedStatement=DEBUG
  11. log4j.appender.Stdout = org.apache.log4j.DailyRollingFileAppender
  12. log4j.appender.Stdout.File = E://logs/log.log
  13. log4j.appender.Stdout.Append = true
  14. log4j.appender.Stdout.Threshold = DEBUG
  15. log4j.appender.Stdout.layout = org.apache.log4j.PatternLayout
  16. log4j.appender.Stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

四、单元测试

上面的配置完好,接下来就是测验成功

整个目录 如下:

(1)测试基类

  1. package com.lin.baseTest;
  2. import org.junit.runner.RunWith;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.test.context.ContextConfiguration;
  6. import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
  7. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  8. /**
  9. * 功能概要:
  10. *
  11. * @author linbingwen
  12. * @since  2015年9月28日
  13. */
  14. //指定bean注入的配置文件
  15. @ContextConfiguration(locations = { "classpath:application.xml" })
  16. //使用标准的JUnit @RunWith注释来告诉JUnit使用Spring TestRunner
  17. @RunWith(SpringJUnit4ClassRunner.class)
  18. public abstract class SpringTestCase extends AbstractJUnit4SpringContextTests{
  19. protected Logger logger = LoggerFactory.getLogger(getClass());
  20. }

(2)测试类

  1. package com.lin.service;
  2. import org.apache.log4j.Logger;
  3. import org.junit.Test;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import com.lin.baseTest.SpringTestCase;
  6. import com.lin.domain.User;
  7. /**
  8. * 功能概要:UserService单元测试
  9. *
  10. * @author linbingwen
  11. * @since  2015年9月28日
  12. */
  13. public class UserServiceTest extends SpringTestCase {
  14. @Autowired
  15. private UserService userService;
  16. Logger logger = Logger.getLogger(UserServiceTest.class);
  17. @Test
  18. public void selectUserByIdTest(){
  19. User user = userService.selectUserById(10);
  20. logger.debug("查找结果" + user);
  21. }
  22. }

选中selectUserByIdTest,然后右键如下运行

输出结果:

重要打印的结果

这里

  1. 2015-09-28 15:20:15,129 [main] DEBUG [com.lin.dao.UserDao.selectUserById] - ==>  Preparing: SELECT * FROM t_user WHERE USER_ID = ?
  2. 2015-09-28 15:20:15,160 [main] DEBUG [com.lin.dao.UserDao.selectUserById] - ==> Parameters: 10(Integer)
  3. 2015-09-28 15:20:15,160 [main] DEBUG [org.mybatis.spring.SqlSessionUtils] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b64bff9]
  4. 2015-09-28 15:20:15,160 [main] DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] - Returning JDBC Connection to DataSource
  5. 2015-09-28 15:20:15,160 [main] DEBUG [com.lin.service.UserServiceTest] - 查找结果User [userId=10, userName=apple, userPassword=uih6, userEmail=ff@qq.com]

数据库:

程序成功运行,并且结果正确!
 
到这里配置好spring+mybatis+mysql!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=====================================================
这里开始添加spirngMVC,并转换maven工程为web项目
 

五、转换web工程

接上面的工程接着说,此时要加spingMVC之前,工程得再稍微转换下
此时webapp下的结果还没有显示出来,因为此时我们还没有配置此的项目为web项目
 
 
再次进去Properties配置,如下图所示:如果没有显示如下,那就先把dynamic web module的√给去掉,然后重新再打开 这个
进入,然后输入如下内容
确定OK之后,webapp下面就会自动生成一些文件,如下
 
 

六、配置SpringMVC

(1)修改POM文件,增加了一此内容,新的POM文件如下:
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.lin</groupId>
  5. <artifactId>ssm_project</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>war</packaging>
  8. <properties>
  9. <!-- spring版本号 -->
  10. <spring.version>3.2.8.RELEASE</spring.version>
  11. <!-- log4j日志文件管理包版本 -->
  12. <slf4j.version>1.6.6</slf4j.version>
  13. <log4j.version>1.2.12</log4j.version>
  14. <!-- junit版本号 -->
  15. <junit.version>4.10</junit.version>
  16. <!-- mybatis版本号 -->
  17. <mybatis.version>3.2.1</mybatis.version>
  18. </properties>
  19. <dependencies>
  20. <!-- 添加Spring依赖 -->
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-core</artifactId>
  24. <version>${spring.version}</version>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.springframework</groupId>
  28. <artifactId>spring-webmvc</artifactId>
  29. <version>${spring.version}</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework</groupId>
  33. <artifactId>spring-context</artifactId>
  34. <version>${spring.version}</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.springframework</groupId>
  38. <artifactId>spring-context-support</artifactId>
  39. <version>${spring.version}</version>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring-aop</artifactId>
  44. <version>${spring.version}</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework</groupId>
  48. <artifactId>spring-aspects</artifactId>
  49. <version>${spring.version}</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.springframework</groupId>
  53. <artifactId>spring-tx</artifactId>
  54. <version>${spring.version}</version>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.springframework</groupId>
  58. <artifactId>spring-jdbc</artifactId>
  59. <version>${spring.version}</version>
  60. </dependency>
  61. <dependency>
  62. <groupId>org.springframework</groupId>
  63. <artifactId>spring-web</artifactId>
  64. <version>${spring.version}</version>
  65. </dependency>
  66. <!--单元测试依赖 -->
  67. <dependency>
  68. <groupId>junit</groupId>
  69. <artifactId>junit</artifactId>
  70. <version>${junit.version}</version>
  71. <scope>test</scope>
  72. </dependency>
  73. <!-- 日志文件管理包 -->
  74. <!-- log start -->
  75. <dependency>
  76. <groupId>log4j</groupId>
  77. <artifactId>log4j</artifactId>
  78. <version>${log4j.version}</version>
  79. </dependency>
  80. <dependency>
  81. <groupId>org.slf4j</groupId>
  82. <artifactId>slf4j-api</artifactId>
  83. <version>${slf4j.version}</version>
  84. </dependency>
  85. <dependency>
  86. <groupId>org.slf4j</groupId>
  87. <artifactId>slf4j-log4j12</artifactId>
  88. <version>${slf4j.version}</version>
  89. </dependency>
  90. <!-- log end -->
  91. <!--spring单元测试依赖 -->
  92. <dependency>
  93. <groupId>org.springframework</groupId>
  94. <artifactId>spring-test</artifactId>
  95. <version>${spring.version}</version>
  96. <scope>test</scope>
  97. </dependency>
  98. <!--mybatis依赖 -->
  99. <dependency>
  100. <groupId>org.mybatis</groupId>
  101. <artifactId>mybatis</artifactId>
  102. <version>${mybatis.version}</version>
  103. </dependency>
  104. <!-- mybatis/spring包 -->
  105. <dependency>
  106. <groupId>org.mybatis</groupId>
  107. <artifactId>mybatis-spring</artifactId>
  108. <version>1.2.0</version>
  109. </dependency>
  110. <!-- mysql驱动包 -->
  111. <dependency>
  112. <groupId>mysql</groupId>
  113. <artifactId>mysql-connector-java</artifactId>
  114. <version>5.1.29</version>
  115. </dependency>
  116. <!-- javaee-api包 注意和项目使用的JDK版本对应 -->
  117. <dependency>
  118. <groupId>javax</groupId>
  119. <artifactId>javaee-api</artifactId>
  120. <version>6.0</version>
  121. <scope>provided</scope>
  122. </dependency>
  123. <!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->
  124. <dependency>
  125. <groupId>javax</groupId>
  126. <artifactId>javaee-web-api</artifactId>
  127. <version>6.0</version>
  128. <scope>provided</scope>
  129. </dependency>
  130. </dependencies>
  131. </project>

其实也就增加了下面两个

  1. <!-- javaee-api包 注意和项目使用的JDK版本对应 -->
  2. <dependency>
  3. <groupId>javax</groupId>
  4. <artifactId>javaee-api</artifactId>
  5. <version>6.0</version>
  6. <scope>provided</scope>
  7. </dependency>
  8. <!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->
  9. <dependency>
  10. <groupId>javax</groupId>
  11. <artifactId>javaee-web-api</artifactId>
  12. <version>6.0</version>
  13. <scope>provided</scope>
  14. </dependency>
(2) 在src/main/resource中添加springmvc文件夹,然后添加文件spring-mvc.xml,内容如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. xsi:schemaLocation="
  8. http://www.springframework.org/schema/beans
  9. http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context-3.2.xsd
  12. http://www.springframework.org/schema/mvc
  13. http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
  14. <!-- 扫描controller(controller层注入) -->
  15. <context:component-scan base-package="com.lin.controller"/>
  16. <!-- 对模型视图添加前后缀 -->
  17. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
  18. p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>
  19. </beans>

(3)配置web,xml

目录如下 :
这里是关键,web.xml是用来起动sping、spingMVC
放在src/main/webapp/WEB-INF下。内容如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. id="WebApp_ID" version="2.5">
  6. <display-name>Archetype Created Web Application</display-name>
  7. <!-- 起始欢迎界面 -->
  8. <welcome-file-list>
  9. <welcome-file>index.jsp</welcome-file>
  10. </welcome-file-list>
  11. <!-- 读取spring配置文件 -->
  12. <context-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>classpath:application.xml</param-value>
  15. </context-param>
  16. <!-- 设计路径变量值 -->
  17. <context-param>
  18. <param-name>webAppRootKey</param-name>
  19. <param-value>springmvc.root</param-value>
  20. </context-param>
  21. <!-- Spring字符集过滤器 -->
  22. <filter>
  23. <filter-name>SpringEncodingFilter</filter-name>
  24. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  25. <init-param>
  26. <param-name>encoding</param-name>
  27. <param-value>UTF-8</param-value>
  28. </init-param>
  29. <init-param>
  30. <param-name>forceEncoding</param-name>
  31. <param-value>true</param-value>
  32. </init-param>
  33. </filter>
  34. <filter-mapping>
  35. <filter-name>SpringEncodingFilter</filter-name>
  36. <url-pattern>/*</url-pattern>
  37. </filter-mapping>
  38. <!-- 日志记录 -->
  39. <context-param>
  40. <!-- 日志配置文件路径 -->
  41. <param-name>log4jConfigLocation</param-name>
  42. <param-value>classpath:log4j.properties</param-value>
  43. </context-param>
  44. <context-param>
  45. <!-- 日志页面的刷新间隔 -->
  46. <param-name>log4jRefreshInterval</param-name>
  47. <param-value>6000</param-value>
  48. </context-param>
  49. <listener>
  50. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  51. </listener>
  52. <listener>
  53. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  54. </listener>
  55. <!-- springMVC核心配置 -->
  56. <servlet>
  57. <servlet-name>dispatcherServlet</servlet-name>
  58. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  59. <init-param>
  60. <param-name>contextConfigLocation</param-name>
  61. <!--spingMVC的配置路径  -->
  62. <param-value>classpath:springmvc/spring-mvc.xml</param-value>
  63. </init-param>
  64. <load-on-startup>1</load-on-startup>
  65. </servlet>
  66. <!-- 拦截设置 -->
  67. <servlet-mapping>
  68. <servlet-name>dispatcherServlet</servlet-name>
  69. <url-pattern>/</url-pattern>
  70. </servlet-mapping>
  71. <!-- 错误跳转页面 -->
  72. <error-page>
  73. <!-- 路径不正确 -->
  74. <error-code>404</error-code>
  75. <location>/WEB-INF/errorpage/404.jsp</location>
  76. </error-page>
  77. <error-page>
  78. <!-- 没有访问权限,访问被禁止 -->
  79. <error-code>405</error-code>
  80. <location>/WEB-INF/errorpage/405.jsp</location>
  81. </error-page>
  82. <error-page>
  83. <!-- 内部错误 -->
  84. <error-code>500</error-code>
  85. <location>/WEB-INF/errorpage/500.jsp</location>
  86. </error-page>
  87. </web-app>

(4)添加index.jsp

在src/main/webapp/WEB-INF下新建一个文件夹view,添加一个index.jsp,内容如下:
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <html>
  3. <body>
  4. <h2>Hello World!</h2>
  5. ${user.userId}<br>
  6. ${user.userName}<br>
  7. ${user.userPassword}<br>
  8. ${user.userEmail}<br>
  9. </body>
  10. </html>
(5)最后就是controller的书写了
在src/main/java下新建一个包com.lin.controller.然后新建一个类UserController.java,其内容如下:
  1. package com.lin.controller;
  2. import javax.annotation.Resource;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.servlet.ModelAndView;
  6. import com.lin.domain.User;
  7. import com.lin.service.UserService;
  8. /**
  9. * 功能概要:UserController
  10. *
  11. * @author linbingwen
  12. * @since  2015年9月28日
  13. */
  14. @Controller
  15. public class UserController {
  16. @Resource
  17. private UserService userService;
  18. @RequestMapping("/")
  19. public ModelAndView getIndex(){
  20. ModelAndView mav = new ModelAndView("index");
  21. User user = userService.selectUserById(1);
  22. mav.addObject("user", user);
  23. return mav;
  24. }
  25. }

(6)最后的运行!
最后,就是成果了,已经全部都配置好了。我们可以开始以web工程运行了!

然后一路next
接下来控制台就会打印日志出来了!如下
打印浏览器,输入网址:http://localhost:8088/ssm_project/
 
from: http://blog.csdn.net/evankaka/article/details/48785513

【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例的更多相关文章

  1. Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+M ...

  2. Spring+Mybatis+SpringMVC+Maven+MySql搭建实例(转)

    http://blog.csdn.net/evankaka/article/details/48785513?spm=5176.100239.blogcont28591.10.9Fdj9R

  3. Spring+Mybatis+Maven+MySql搭建实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+MySql的的搭建实例 ...

  4. Spring-boot+Mybatis+Maven+MySql搭建实例

    转自:https://www.jianshu.com/p/95fb7be049ae 最近读了spring-boot开发手册,spring-boot相比于spring-mvc封装了很多常用的依赖,并且内 ...

  5. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文实现了一个后台由Spring+Mybatis+SpringMVC组成,分页采用Pag ...

  6. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文实现了一个后台由Spring+Mybatis+SpringMVC组成,分页采用Pag ...

  7. Spring+Mybatis+SpringMVC后台与前台分页展示实例

    摘要:本文实现了一个后台由spring+Mybatis+SpringMVC组成,分页采用PageHelper,前台展示使用bootstrap-paginator来显示效果的分页实例.整个项目由mave ...

  8. Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)二

    接着上一篇博客<Spring整合MyBatis(Maven+MySQL)一>继续. Spring的开放性和扩张性在J2EE应用领域得到了充分的证明,与其他优秀框架无缝的集成是Spring最 ...

  9. Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

    一.Maven将父项目创建到父项目的内部 在父项目的pom.xml上 点右键,选择maven-->new-->maven module  project 二.Maven聚合 在某个项目的p ...

随机推荐

  1. MySQL B+树索引和哈希索引的区别(转 JD二面)

    导读 在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议. 二者区别 备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTRE ...

  2. MySQL:入门

    一.前言 MySQL :是用于管理数据的软件 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. 分为服务端和客户 ...

  3. <Android 基础(二十一)> Android 屏幕适配

    基本概念 1. 什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 屏幕尺寸是指屏幕对角线的长度.单位是英寸,1英寸=2.54厘米 屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1像素点,一般是纵向 ...

  4. 远景平台开发者上线,专业API免费使用

    远景平台开发者上线,欢迎大伙围观使用. 在开发者中心你可以做什么? 1.管理你的应用,通过APPKEY获取在线API.使用云中的数据和地图. 2.学习API的使用,包含API参考和部分例子(目前例子很 ...

  5. IoT Gateway Based on OSGi

    1. OSGi Knowleage 2. OSGi.Net on Windows 3. OSGi with JAVA 4. OSGi with Qt and C++ 5. Architecture o ...

  6. Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影)

    Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影) ProxyHandler处理(代理服务器),使用代理IP,是爬虫的常用手段,通常使用UserAgent 伪装浏览器爬取仍然可能被网 ...

  7. Android画廊效果

    Android画廊效果 前言:Gallery是一个内部元素控件,可以水平滚动,并且可以把当前选择的子元素定位在它中心的布局组件:画廊Gallery一般用来显示可左右移动图片的列表(具体请看实例). 效 ...

  8. 爬虫day03之scrapy安装与使用

    参考博客 技术问题不要问,业务问题可以问是不是有一种更好的方法? scrapy windows安装 1. 安装scrapy 参考博客 https://www.cnblogs.com/wupeiqi/a ...

  9. 一、Asp.Net Core WebAPI——修改默认监听端口

    参考文档 添加host.json文件 { "urls": "https://localhost:44389;http://localhost:44380" } ...

  10. [翻译] KYCircularProgress

    KYCircularProgress Flexible progress bar written in Swift. 用Swift语言编写的灵活的进度条控件. Features Gradation C ...