使用IDEA配置Maven + SpringMVC + Mybatis 【一步一步踩坑詳細配置完成】

 

PS:初學,想使用Maven配置一個SpringMVC的開發環境,照着網上的各類圖文解說,配置了很久都沒成功,有些寫的不夠詳細,有些只有寫一半,走了很多彎彎繞繞,踩了很多的坑,此文將正確配置成功的步驟所有記錄下來。html

一、環境java

  • IDEA 2017.3
  • Maven 使用了 IDEA自帶Maven,亦能夠不用自帶的(沒什麼大區別),不用IDEA自帶的能夠先去下載maven安裝並設置。

     Maven 安裝配置 http://www.cnblogs.com/yangdaxian/p/8676373.htmlmysql

  • JDK 1.8      JDK須要先下載安裝配置好
  • Spring 
  • Mybatis
  • MySQL 5.1.41  MySQL須要保證可用
  • Tomcat 8

二、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

  • 選擇好本身的JDK路徑

  • 設置項目的group id, artifactid, version等信息

  • 設置maven倉庫路徑,我這邊偷懶直接使用了idea自帶的

  • 項目名設置,而後Finish

  • 等待後生成結構以下,右下角選擇 Enable Auto-import 自動導入;

  • 若是沒有自動導入這個選項,pom.xml配置完成後能夠在右側邊緣找到 Maven Projects 打開後點擊第一個相似刷新的按鈕進行下載

 

  • 新建結構目錄以下(若想要包分層結構顯示在,上面齒輪那的第二行菜單,【Hide Empty Middle Packages】,將以選中的勾去掉就行)
  • 新建的 java 文件 須要對它轉一下, java文件夾上 右擊 --> Make Diretorys as --> Sources Root (藍色) /Test Sources Root (綠色) 

 

【pom.xml 配置】數據庫

  • 在<build>中添加以下信息
    <!--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>
  • 在 <dependencies>以前設置變量參數
  <!-- 設置變量參數 -->
  <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>
  • 在 <dependencies>內添加須要的依賴包
<!-- 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>
  • 【pom.xml 配置】 最終配置
  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

  • 在resources下新建,根據實際路徑更改輸出日誌路徑(D:/WorkSpace/idea_workSpase/springmvc/src/main/webapp/WEB-INF/log/log.txt)
    #日誌輸出級別
    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

  • 在resources下新建;須要更改本地驅動路徑與數據庫鏈接信息
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
  • 驅動包路徑查看方式:找到對應驅動後  右擊 --> copy path

 

配置generatorConfig.xmlapi

  • mybatis逆向工程配置文件generatorConfig.xml,此配置文件名稱不要改變
    <?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());
    }
}

 

  • webapp文件下建立index.jsp文件

<%--
  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

 

 

 

 

  

配置完成 ,啓動看看~~

 

 

從數據庫取數據來展現

  • 如今上面已經配置成功了,接下去就要試試從數據庫取數據來展現了
  •  建立UserService
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);
    }
}
  • 建立UserController
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;
    }
}
  • 建立jsp文件,咱們在spring-mvc.xml中配置了目錄

所以咱們要在 WEB-INF下新建個jsp文件夾

  • getUser.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

相關文章
相關標籤/搜索