PS:初學,想使用Maven配置一個SpringMVC的開發環境,照着網上的各類圖文解說,配置了很久都沒成功,有些寫的不夠詳細,有些只有寫一半,走了很多彎彎繞繞,踩了很多的坑,此文將正確配置成功的步驟所有記錄下來。html
一、環境java
Maven 安裝配置 http://www.cnblogs.com/yangdaxian/p/8676373.htmlmysql
二、SSM整合web
新建數據庫表spring
CREATE TABLE `user` ( `id` varchar(10) NOT NULL, `name` varchar(20) DEFAULT NULL, `sex` varchar(5) DEFAULT NULL, `age` varchar(3) DEFAULT NULL, `address` varchar(100) DEFAULT NULL, `phone` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO mytest.`user`(id, name, sex, age, address, phone) VALUES('1', '張三', '男', '18', '共住地球村', '18888888881'); INSERT INTO mytest.`user`(id, name, sex, age, address, phone) VALUES('2', '李四', '男', '16', '共住地球村', '18888888882'); INSERT INTO mytest.`user`(id, name, sex, age, address, phone) VALUES('3', '洪五', '女', '22', '共住地球村', '18888888883'); INSERT INTO mytest.`user`(id, name, sex, age, address, phone) VALUES('4', '馬六', '女', '17', '共住地球村', '18888888884'); INSERT INTO mytest.`user`(id, name, sex, age, address, phone) VALUES('5', '孫七', '女', '23', '共住地球村', '18888888885'); INSERT INTO mytest.`user`(id, name, sex, age, address, phone) VALUES('6', '趙八', '男', '38', '共住地球村', '18888888886');
新建maven項目sql
【pom.xml 配置】數據庫
<!--plugins添加逆向工程插件-->
<plugins>
... 默認信息
<!--mybatis逆向工程插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- 設置JDK版本 --> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> <finalName>springmvc</finalName> <!--若不配置,可能會發送打包不全--> <resources> <resource> <!--須要打包的目錄--> <directory>src/main/java</directory> <!--目錄中的文件類型--> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> <resource> <!--須要打包的目錄--> <directory>src/main/resources</directory> <!--目錄中的文件類型--> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> </resources>
<!-- 設置變量參數 --> <properties> <!-- 設置項目編碼編碼 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- spring版本號 --> <spring.version>4.3.5.RELEASE</spring.version> <!-- mybatis版本號 --> <mybatis.version>3.4.1</mybatis.version> <!--log4j 版本號--> <log4j.version>1.2.17</log4j.version> </properties>
<!-- java ee --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- 單元測試 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- 實現slf4j接口並整合 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.2</version> </dependency> <!-- JSON --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.7</version> </dependency> <!-- 數據庫 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> <scope>runtime</scope> </dependency> <!-- 數據庫鏈接池 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring整合包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!--添加Hibernate Validator依賴,不加此項會報錯,但不影響項目運行--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.2.4.Final</version> </dependency> <!-- Spring 依賴--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- log4j日誌 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> </dependencies>
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 3 Licensed to the Apache Software Foundation (ASF) under one 4 or more contributor license agreements. See the NOTICE file 5 distributed with this work for additional information 6 regarding copyright ownership. The ASF licenses this file 7 to you under the Apache License, Version 2.0 (the 8 "License"); you may not use this file except in compliance 9 with the License. You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, 14 software distributed under the License is distributed on an 15 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 KIND, either express or implied. See the License for the 17 specific language governing permissions and limitations 18 under the License. 19 --> 20 <!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ --> 21 <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"> 22 23 <modelVersion>4.0.0</modelVersion> 24 <packaging>war</packaging> 25 26 <name>springmvc</name> 27 <groupId>com.yq</groupId> 28 <artifactId>springmvc</artifactId> 29 <version>1.0-SNAPSHOT</version> 30 31 <build> 32 <plugins> 33 <plugin> 34 <groupId>org.mortbay.jetty</groupId> 35 <artifactId>maven-jetty-plugin</artifactId> 36 <version>6.1.7</version> 37 <configuration> 38 <connectors> 39 <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 40 <port>8888</port> 41 <maxIdleTime>30000</maxIdleTime> 42 </connector> 43 </connectors> 44 <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory> 45 <contextPath>/</contextPath> 46 </configuration> 47 </plugin> 48 49 <!--mybatis逆向工程插件--> 50 <plugin> 51 <groupId>org.mybatis.generator</groupId> 52 <artifactId>mybatis-generator-maven-plugin</artifactId> 53 <version>1.3.2</version> 54 </plugin> 55 56 <plugin> 57 <groupId>org.apache.maven.plugins</groupId> 58 <artifactId>maven-compiler-plugin</artifactId> 59 <configuration> 60 <!-- 設置JDK版本 --> 61 <source>1.8</source> 62 <target>1.8</target> 63 </configuration> 64 </plugin> 65 </plugins> 66 67 <finalName>springmvc</finalName> 68 69 <!--若不配置,可能會發送打包不全--> 70 <resources> 71 <resource> 72 <!--須要打包的目錄--> 73 <directory>src/main/java</directory> 74 <!--目錄中的文件類型--> 75 <includes> 76 <include>**/*.xml</include> 77 <include>**/*.properties</include> 78 </includes> 79 </resource> 80 <resource> 81 <!--須要打包的目錄--> 82 <directory>src/main/resources</directory> 83 <!--目錄中的文件類型--> 84 <includes> 85 <include>**/*.xml</include> 86 <include>**/*.properties</include> 87 </includes> 88 </resource> 89 </resources> 90 </build> 91 92 <!-- 設置變量參數 --> 93 <properties> 94 <!-- 設置項目編碼編碼 --> 95 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 96 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 97 <!-- spring版本號 --> 98 <spring.version>4.3.5.RELEASE</spring.version> 99 <!-- mybatis版本號 --> 100 <mybatis.version>3.4.1</mybatis.version> 101 <!--log4j 版本號--> 102 <log4j.version>1.2.17</log4j.version> 103 </properties> 104 105 <dependencies> 106 <!-- java ee --> 107 <dependency> 108 <groupId>javax</groupId> 109 <artifactId>javaee-api</artifactId> 110 <version>7.0</version> 111 </dependency> 112 113 <!-- 單元測試 --> 114 <dependency> 115 <groupId>junit</groupId> 116 <artifactId>junit</artifactId> 117 <version>4.12</version> 118 </dependency> 119 120 <!-- 實現slf4j接口並整合 --> 121 <dependency> 122 <groupId>ch.qos.logback</groupId> 123 <artifactId>logback-classic</artifactId> 124 <version>1.2.2</version> 125 </dependency> 126 127 <!-- JSON --> 128 <dependency> 129 <groupId>com.fasterxml.jackson.core</groupId> 130 <artifactId>jackson-databind</artifactId> 131 <version>2.8.7</version> 132 </dependency> 133 134 135 <!-- 數據庫 --> 136 <dependency> 137 <groupId>mysql</groupId> 138 <artifactId>mysql-connector-java</artifactId> 139 <version>5.1.41</version> 140 <scope>runtime</scope> 141 </dependency> 142 143 <!-- 數據庫鏈接池 --> 144 <dependency> 145 <groupId>com.mchange</groupId> 146 <artifactId>c3p0</artifactId> 147 <version>0.9.5.2</version> 148 </dependency> 149 150 <!-- MyBatis --> 151 <dependency> 152 <groupId>org.mybatis</groupId> 153 <artifactId>mybatis</artifactId> 154 <version>${mybatis.version}</version> 155 </dependency> 156 157 <!-- mybatis/spring整合包 --> 158 <dependency> 159 <groupId>org.mybatis</groupId> 160 <artifactId>mybatis-spring</artifactId> 161 <version>1.3.1</version> 162 </dependency> 163 164 <!--添加Hibernate Validator依賴,不加此項會報錯,但不影響項目運行--> 165 <dependency> 166 <groupId>org.hibernate</groupId> 167 <artifactId>hibernate-validator</artifactId> 168 <version>5.2.4.Final</version> 169 </dependency> 170 171 <!-- Spring 依賴--> 172 <dependency> 173 <groupId>org.springframework</groupId> 174 <artifactId>spring-core</artifactId> 175 <version>${spring.version}</version> 176 </dependency> 177 <dependency> 178 <groupId>org.springframework</groupId> 179 <artifactId>spring-beans</artifactId> 180 <version>${spring.version}</version> 181 </dependency> 182 <dependency> 183 <groupId>org.springframework</groupId> 184 <artifactId>spring-context</artifactId> 185 <version>${spring.version}</version> 186 </dependency> 187 <dependency> 188 <groupId>org.springframework</groupId> 189 <artifactId>spring-jdbc</artifactId> 190 <version>${spring.version}</version> 191 </dependency> 192 <dependency> 193 <groupId>org.springframework</groupId> 194 <artifactId>spring-tx</artifactId> 195 <version>${spring.version}</version> 196 </dependency> 197 <dependency> 198 <groupId>org.springframework</groupId> 199 <artifactId>spring-web</artifactId> 200 <version>${spring.version}</version> 201 </dependency> 202 <dependency> 203 <groupId>org.springframework</groupId> 204 <artifactId>spring-webmvc</artifactId> 205 <version>${spring.version}</version> 206 </dependency> 207 <dependency> 208 <groupId>org.springframework</groupId> 209 <artifactId>spring-test</artifactId> 210 <version>${spring.version}</version> 211 </dependency> 212 213 <!-- log4j日誌 --> 214 <dependency> 215 <groupId>log4j</groupId> 216 <artifactId>log4j</artifactId> 217 <version>${log4j.version}</version> 218 </dependency> 219 </dependencies> 220 221 </project>
配置 log4j.propertiesexpress
#日誌輸出級別
log4j.rootLogger=debug,stdout,D,E
#設置stdout的日誌輸出控制檯
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#輸出日誌到控制檯的方式,默認爲System.out
log4j.appender.stdout.Target = System.out
#設置使用靈活佈局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#靈活定義輸出格式
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} -[%p] method:[%c (%rms)] - %m%n
#天天產生一個日誌文件
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
#設置的輸出日誌
log4j.appender.D.File=D:/WorkSpace/idea_workSpase/springmvc/src/main/webapp/WEB-INF/log/log.txt
#設置的日誌最大限制
log4j.appender.D.MaxFileSize=6000KB
#最多隻保存20個備份文件
log4j.appender.D.MaxBackupIndex=20
#輸出INFO級別以上的日誌
og4j.appender.D.Threshold=debug
log4j.appender.D.Append = true
log4j.appender.D.ImmediateFlush = true
#log4j.appender.D.DatePattern ='.'yyyy-MM-dd
#設置使用靈活佈局
log4j.appender.D.layout=org.apache.log4j.PatternLayout
#靈活定義輸出格式
log4j.appender.D.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} -[%p] method:[%l (%rms)] - %m%n
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =D:/WorkSpace/idea_workSpase/springmvc/src/main/webapp/WEB-INF/log/error/error.txt
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
#log4j.appender.E.DatePattern = '_'yyyyMMdd'.log'
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} -[%p] method:[%l (%rms)] - %m%n
配置 jdbc.propertiesapache
jdbc.driverLocation=C:\\Users\\yq\\.m2\\repository\\mysql\\mysql-connector-java\\5.1.41\\mysql-connector-java-5.1.41.jar jdbc.driverClasss=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://192.168.56.107:3306/mytest?useUnicode=true&characterEncoding=UTF-8 #聲明使用username可能會與系統jvm衝突 jdbc.username=demo jdbc.password=demo
配置generatorConfig.xmlapi
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!--導入屬性配置--> <properties resource="jdbc.properties"></properties> <!--指定特定數據庫的jdbc驅動jar包的位置--> <classPathEntry location="${jdbc.driverLocation}"/> <context id="default" targetRuntime="MyBatis3"> <!-- optional,旨在建立class時,對註釋進行控制 --> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--jdbc的數據庫鏈接 --> <jdbcConnection driverClass="${jdbc.driverClasss}" connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"> </jdbcConnection> <!-- 非必需,類型處理器,在數據庫類型和java類型之間的轉換控制--> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類 targetPackage 指定生成的model生成所在的包名 targetProject 指定在該項目下所在的路徑 --> <javaModelGenerator targetPackage="com.yq.model" targetProject="src/main/java"> <!-- 是否容許子包,即targetPackage.schemaName.tableName --> <property name="enableSubPackages" value="false"/> <!-- 是否對model添加 構造函數 --> <property name="constructorBased" value="true"/> <!-- 是否對類CHAR類型的列的數據進行trim操做 --> <property name="trimStrings" value="true"/> <!-- 創建的Model對象是否 不可改變,即生成的Model對象不會有 getter/setter方法,只有構造方法 --> <property name="immutable" value="false"/> </javaModelGenerator> <!--Mapper映射文件生成所在的目錄 爲每個數據庫的表生成對應的SqlMap文件 --> <sqlMapGenerator targetPackage="com.yq.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- 客戶端代碼,生成易於使用的針對Model對象和XML配置文件 的代碼 type="ANNOTATEDMAPPER",生成Java Model 和基於註解的Mapper對象 type="MIXEDMAPPER",生成基於註解的Java Model 和相應的Mapper對象 type="XMLMAPPER",生成SQLMap XML文件和獨立的Mapper接口 --> <javaClientGenerator targetPackage="com.yq.dao" targetProject="src/main/java" type="XMLMAPPER"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 配置須要生成model的數據庫表,此項<table> 必須存在,沒有須要生成的表的話直接設置爲""便可--> <table tableName="user"></table> </context> </generatorConfiguration>
http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd 識別不到的問題,可進行以下操做,File --> Setting 添加未識別的項
測試逆向生成是否成功
配置完成後,能夠測試逆向生成是否配置成功了~
點擊左上角綠色的 + ,設置好 Name(自定義) 與 Command line
選中剛纔設置的,點擊執行,若是正確配置了能看到在 dao 與 model中均生成了以下文件,這個User表是在generatorConfig.xml中配置的;若是出現錯誤了,排查下配置文件
配置spring-mybatis
<?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: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"> <!-- 掃描service包下全部使用註解的類型 --> <context:component-scan base-package="com.yq.service"/> <!-- 配置數據庫相關參數properties的屬性:${url} --> <context:property-placeholder location="classpath*:jdbc.properties"/> <!-- 數據庫鏈接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClasss}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 配置SqlSessionFactory對象 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入數據庫鏈接池 --> <property name="dataSource" ref="dataSource"/> <!-- 掃描model包 使用別名 --> <property name="mapperLocations" value="classpath:com/yq/dao/*.xml" /> </bean> <!-- 配置掃描Dao接口包,動態實現Dao接口,注入到spring容器中 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 給出須要掃描Dao接口包 --> <property name="basePackage" value="com.yq.dao"/> <!-- 注入sqlSessionFactory --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 注入數據庫鏈接池 --> <property name="dataSource" ref="dataSource"/> </bean> <!-- 配置基於註解的聲明式事務 --> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
配置spring-mvc
<?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:mvc="http://www.springframework.org/schema/mvc" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 掃描web相關的bean --> <context:component-scan base-package="com.yq.controller"/> <!-- 開啓SpringMVC註解模式 --> <mvc:annotation-driven/> <!-- 靜態資源默認servlet配置 --> <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/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
配置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"> <display-name>springmvc</display-name> <description>springmvc_0.0.1</description> <!-- 編碼過濾器 --> <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> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- log4j 配置 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <!-- 配置log4j 日誌監聽 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- 配置DispatcherServlet --> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置springMVC須要加載的配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <!-- 匹配全部請求--> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
測試查詢數據庫是否成功
在test --> dao 目錄下新建一個測試類,測試下如今可否讀取到數據庫內容
package com.yq.dao; import com.yq.model.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"classpath:spring-mybatis.xml"}) public class UserQueryTest { @Autowired private UserMapper userMapper; @Test public void queryUserName() { String id = "1"; User user = userMapper.selectByPrimaryKey(id); System.out.println(user.getName()); } }
<%-- Created by IntelliJ IDEA. User: yq Date: 2018/3/29 Time: 14:56 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>測試標題</title> </head> <body> Hello World! 你的配置是正確噠!!!~~~ </body> </html>
配置Tomcat
配置完成 ,啓動看看~~
從數據庫取數據來展現
package com.yq.service; import com.yq.dao.UserMapper; import com.yq.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(String id){ return userMapper.selectByPrimaryKey(id); } }
package com.yq.controller; import com.yq.model.User; import com.yq.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/userInfo") public class UserController { @Autowired private UserService userService; @RequestMapping("/getUser") public ModelAndView getUser(String id){ ModelAndView modelAndView = new ModelAndView(); User user = userService.getUserById(id); modelAndView.addObject("userInfo",user); modelAndView.setViewName("userInfo/getUser"); return modelAndView; } }
所以咱們要在 WEB-INF下新建個jsp文件夾
<%-- Created by IntelliJ IDEA. User: yq Date: 2018/4/2 Time: 14:04 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>測試getUser</title> </head> <body> <p>編號: ${userInfo.id}</p> <p>姓名:${userInfo.name}</p>
<p>性別:${userInfo.sex}</p>
<p>年齡:${userInfo.age}</p>
<p>地址:${userInfo.address}</p>
<p>電話: ${userInfo.phone}</p>
</body>
</html>
訪問 http://localhost:8080/springmvc/userInfo/getUser?id=2
完成,沒毛病; 配置期間若是因爲環境問題會出現一些異常錯誤,通常拷貝錯誤度娘下都能解決掉,都不是什麼大問題。共勉~
項目下載地址:https://download.csdn.net/download/yq_111111/10322545