IDEA使用maven搭建SSM框架整合項目(超級詳細,值得一看)
簡單介紹下SSM
SSM(Spring+SpringMVC+Mybatis),目前較爲主流的企業級架構方案。標準的MVC設計模式,將整個系統劃分爲顯示層、Controller層、Service層、Dao層四層,使用SpringMVC負責請求的轉發和視圖管理,Spring實現業務對象管理,MyBatis作爲數據對象持久化引擎。
一、框架介紹
-
Spring
Spring是一個開源框架,它由Rod Johnson創建。它是爲了解決企業應用開發的複雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。簡單說,
Spring是一個輕量級控制反轉(IoC)和麪向切面(AOP)的容器框架。
-
SpringMVC
SpringMVC是一種基於Java的實現MVC設計模式的請求驅動類型的輕量級Web框架,使用了MVC架構模式的思想
,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發。 -
MyBatis
MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數據庫中的記錄。
二、下載Maven
- 下載地址 :
https://maven.apache.org/download.cgi
- 解壓下載的安裝包,我將安裝包解壓在我的目錄下,解壓好了以後,並創建好本地倉庫
mavenrepository
目錄。
- 修改maven的配置文件,進入剛解壓的的
maven文件夾
目錄,進入conf
,使用編輯器打開settings.xml
文件,我這裏使用的BBEdit
,window的可以使用EditPlus
- 打開以後,配置本地倉庫路徑,不使用默認的maven倉庫,配置
maven倉庫下載國內的鏡像源
,不然下載特別慢,有時候還會出現下載jar包失敗,如下圖配置,修改自己電腦對應的路徑。
maven 倉庫路徑
<localRepository>/Users/wht/maven/mavenrepository</localRepository>
阿里的鏡像倉庫
<!-- 配置阿里雲的鏡像倉庫 可以提高jar包的下載速度 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- maven的下載和配置就完成了,接下來我們就去創建項目了。
三、創建Maven項目
- 首先打開 IDEA,點擊 Create New Project
- 找到 Maven 點擊下 ,然後直接點擊 Next
-
填寫相應的信息,Groupid是項目組織唯一的標識符,實際對應JAVA的包的結構。Artifactid就是項目的唯一的標識符,實際對應項目的名稱,就是項目根目錄的名稱。
-
填好後,直接點擊Next
-
繼續點擊Finish
-
接下來建好的項目目錄就展示在我們眼前,你會發現這裏面沒有webapp。
-
接下來因爲我們創建的是maven項目,所以我們要在
IDEA中配置一下maven的倉庫
,本人用的MacBook,可能界面會跟window有點差別,但是界面都是有功能的,點擊左上角的IntelliJ IDEA
,找到Preferences...
,點擊進入
- 進入設置界面左上角搜索🔍
maven
,進入maven 設置界面
- 注意⚠️
前提是你必須下載了maven
- 接下來點擊黃色框區域後面的
省略號 ...
找到自己電腦上下載的maven文件夾,選中,點擊OK。
-
這時候可以看到下圖,已經設置成功,並且我的maven倉庫路徑也會隨之改變。因爲我配置了自己的
settings.xml
文件。
-
接下來我們修改IDEA中的maven默認的settings.xml配置文件爲自己本地的配置文件,根據圖中操作步驟修改。
- 接下來idea的項目需要手動配置,本人用的MacBook,可能界面會跟window有點差別,但是界面都是有功能的,點擊左上角
File
,找到Project Structure...
點擊進入項目配置
- 點擊
Project
,選擇自己電腦的JDK,我這裏是使用的是jdk1.8
,下面的也要選擇8 - Lambdas, ...
- 接下來配置Modules, 點擊
Modules
,點擊自己的項目, 然後點擊“ + ”
號,下拉找到Web
點擊。
- 接下來配置Web ,點擊Deployment Descriptors下的路徑選中,點擊修改圖標
- 接下來將路徑改爲下圖路徑,點擊OK
- 修改之後你會看到上面的路徑已經修改成功了。 接下來點擊下面的
Web Resoure Directories
點擊修改圖標
- 同樣將原路徑改爲下圖路徑,點擊OK
- 修改完成之後,會看到以下畫面。看到下面的黃色感嘆圖標,點擊右下角的
Create Artifacet
點擊。會自動給Artifacet
添加Web exploded
- 接下來點擊
Apply
點擊OK
。 - 返回編輯界面,如下圖,會發現 與之前的剛創建的項目截圖對比,這裏多出了
webapp
文件夾,並且中間有個藍色小圈
和web.xml
,表示創建成功了。
剛創建的項目截圖
配置後的項目截圖
四、Maven工程需要引入的Jar 包
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.top</groupId>
<artifactId>ssmDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
<spring.version>3.2.9.RELEASE</spring.version>
<mybatis.version>3.1.1</mybatis.version>
<mybatisspring.version>1.1.1</mybatisspring.version>
</properties>
<dependencies>
<!--引入pageHelper分頁插件 PageInfo -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
<!-- springwebmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 返回json字符串的支持 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
<!-- Spring 整合Jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring-test spring測試包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Spring面向切面編程 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</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>${mybatisspring.version}</version>
</dependency>
<!-- 阿里巴巴 數據源 druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- mysql驅動包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!-- servlet api包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- junit 測試包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- 日誌包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<!-- excel 批量的導入導出 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<!-- 阿里巴巴的fastjson json和java 快速轉換工具包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<finalName>ssmDemo</finalName>
</build>
</project>
五、整合SSM框架、需要的相關配置文件配置項目
web.xml
修改webapp
下的WEB-INF
下的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring/beans_core.xml</param-value>
</context-param>
<!-- 監聽我們加載的配置文件是否有異常問題 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止Spring內存溢出監聽器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/springmvc/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- spring 提供了一個字符編碼過濾器 Filter -->
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
Spring的配置文件
我這裏起名爲beans_core.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<!-- 開啓註解模式 -->
<context:annotation-config/>
<!-- 掃描註解包 -->
<context:component-scan base-package="com.top.*"></context:component-scan>
<!-- 數據庫連接池對象 -->
<context:property-placeholder
location="classpath:jdbc.properties"></context:property-placeholder>
<!-- 阿里 druid數據庫連接池 -->
<bean id="dataSource"
class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<!-- 數據庫基本信息配置 -->
<property name="url" value="${url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}" />
<property name="driverClassName" value="${driverClassName}" />
<property name="filters" value="${filters}" />
<!-- 最大併發連接數 -->
<property name="maxActive" value="${maxActive}" />
<!-- 初始化連接數量 -->
<property name="initialSize" value="${initialSize}" />
<!-- 配置獲取連接等待超時的時間 -->
<property name="maxWait" value="${maxWait}" />
<!-- 最小空閒連接數 -->
<property name="minIdle" value="${minIdle}" />
<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis"
value="${timeBetweenEvictionRunsMillis}" />
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
<property name="minEvictableIdleTimeMillis"
value="${minEvictableIdleTimeMillis}" />
<property name="validationQuery" value="${validationQuery}" />
<property name="testWhileIdle" value="${testWhileIdle}" />
<property name="testOnBorrow" value="${testOnBorrow}" />
<property name="testOnReturn" value="${testOnReturn}" />
<property name="maxOpenPreparedStatements"
value="${maxOpenPreparedStatements}" />
<!-- 打開removeAbandoned功能 -->
<property name="removeAbandoned" value="${removeAbandoned}" />
<!-- 1800秒,也就是30分鐘 -->
<property name="removeAbandonedTimeout"
value="${removeAbandonedTimeout}" />
<!-- 關閉abanded連接時輸出錯誤日誌 -->
<property name="logAbandoned" value="${logAbandoned}" />
</bean>
<!-- spring 整合mybatis 使用的工具類 -->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- 掃描我們制定目錄下的mapper.xml文件 -->
<property name="mapperLocations"
value="classpath:mybatis/mapper/*.xml"></property>
<!-- 加載mybatis的配置文件 -->
<property name="configLocation"
value="classpath:mybatis/sqlMapConfig.xml"></property>
<!-- 引入pagehelper分頁插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helperDialect=mysql
reasonable=true
supportMethodsArguments=true
params=count=countSql
autoRuntimeDialect=true
</value>
</property>
</bean>
</array>
</property>
</bean>
<!-- 加載我們的mapper xml 和 mapper接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.top.mapper"></property>
</bean>
<!--<import resource="classpath:beans_transaction.xml"></import> -->
<!--<bean name="customerController" class ="com.ujiuye.cus.controller.CustomerController"></bean> -->
<!-- 引入spring提供的事務管理 -->
<bean id="tm"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- transaction-manager: 值就是spring提供的那個事務管理器的id值 -->
<tx:advice id="myadvice" transaction-manager="tm">
<tx:attributes>
<tx:method name="add*" isolation="READ_COMMITTED"
propagation="REQUIRED" />
<tx:method name="save*" isolation="READ_COMMITTED"
propagation="REQUIRED" />
<tx:method name="delete*" isolation="READ_COMMITTED"
propagation="REQUIRED" />
<tx:method name="update*" isolation="READ_COMMITTED"
propagation="REQUIRED" />
<tx:method name="drop*" isolation="READ_COMMITTED"
propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut
expression="execution(* com.top.service.*(..))" id="pt" />
<aop:advisor advice-ref="myadvice" pointcut-ref="pt" />
</aop:config>
</beans>
SpringMVC的配置文件
我這裏命名爲springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<context:annotation-config />
<!-- 掃描哪些包 -->
<context:component-scan base-package="com.top.*" />
<bean name="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.top.util.DateConvertor"></bean>
<bean class="com.top.util.MyTrimString"></bean>
</set>
</property>
</bean>
<!-- 開啓springmvc的註解操作 -->
<mvc:annotation-driven
conversion-service="conversionService" />
<!-- 將dispatcherServlet 不能處理的請求推給 默認servlet執行 -->
<mvc:default-servlet-handler />
<!-- 視圖解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
爲了代替手工使用
SqlSessionDaoSupport
或SqlSessionTemplate
編寫數據訪問對象 (DAO)的代碼,MyBatis-Spring
提供了一個動態代理的實現:MapperFactoryBean
。這個類可以讓你直接注入數據映射器接口到你的service 層 bean
中。當使用映射器時,你僅僅如調 用你的DAO
一樣調用它們就可以了,但是你不需要編寫任何DAO 實現
的代碼,因爲MyBatis-Spring 將會爲你創建代理。
MyBatis 的配置文件
我這裏命名爲sqlMapConfig.xml
<?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>
<!-- 暫時不需要其他配置-->
</configuration>
日誌配置文件
log4j.properties
# Global logging configuration\uff0c\u5efa\u8bae\u5f00\u53d1\u73af\u5883\u4e2d\u8981\u7528debug
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
數據庫配置文件
jdbc.properties
url:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
driverClassName:com.mysql.jdbc.Driver
jdbc_username:root
jdbc_password:123
filters:stat
maxActive:20
initialSize:1
maxWait:60000
minIdle:10
maxIdle:15
timeBetweenEvictionRunsMillis:60000
minEvictableIdleTimeMillis:300000
validationQuery:SELECT 'x'
testWhileIdle:true
testOnBorrow:false
testOnReturn:false
maxOpenPreparedStatements:20
removeAbandoned:true
removeAbandonedTimeout:1800
logAbandoned:true
- 配置文件就已經全部配置完成了,項目目錄如下圖。
六、工程導入Jar包及配置 tomcat
- 接下來點擊左上角
File
,找到Project Structure...
點擊進入項目配置,找到
Libraries
,進入查看,你會發現你pom.xml
導入的maven jar包已經下載完畢。
- 繼續點擊
Artifacts
,會發現Available ...
也有maven的jar包
- 接下來看圖中操作步驟操作
- 右擊ssmDemo文件夾,點擊 Put into Output Root
- 這時候你看發現如下圖所示的變化
- 然後jar包已經全部部署在 WEB-INF的 lib 目錄下,接下來先點擊
Apply
再點擊OK
。
- 接下來我們來 配置
tomcat
,點擊OK 後,進入編輯區 點擊"Add Config..."
- 點擊添加圖標
➕
- 一直下拉找到
Tomcat Server
選中Local
,會進入下圖的界面。
- 接下來編輯 tomcat 配置,根據圖中操作步驟,來配置。
- 這時候觀察 tomcat 已經配置完成。
七、使用MyBatis的逆向工程 (Generator)
MyBatis的Generator可以自動創建實體類、Mapper映射文件以及DAO接口
- MyBatis的逆向工程 有三種:
命令行、eclipse插件、maven插件。
- 我這裏使用
maven插件
- Eclipse與IDEA都可以使用,咱們這裏的教程就使用IDEA吧
在pom.xml
中添加plugin
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
- generatorConfig.xml的位置,我這裏是放在
src/main/resources/mybatis-generator/generatorConfig.xml
,大家可以自己調整路徑。 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>
<classPathEntry location="/Users/wht/maven/mavenrepository/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true"></property>
</commentGenerator>
<!-- 設定數據庫連接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test"
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成 bean 存放的位置 -->
<javaModelGenerator targetPackage="com.top.bean"
targetProject="./src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成的mapper文件的位置 -->
<sqlMapGenerator targetPackage="com.top.mapper"
targetProject="./src/main/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成的mapper.xml 對應的那個mapper接口的存放位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.top.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 設定反向生成的表 -->
<table tableName="test"></table>
</context>
</generatorConfiguration>
- 配置完成後如下圖
- 點擊
mybatis-generator:generate
會自動生成實體類、Mapper映射文件以及DAO接口
,看如下圖圖片。
- 我習慣將逆向生成的
** Mapper.xml
文件放在配置文件resources
的mybatis
下的
mapper
文件夾下,如下圖。
- 逆向工程生成代碼就已經完成了,是不是很 Nice 啊😄,快去試一試咯
八、建立Service層以及conrorller層
Service層接口
package com.top.service;
import com.top.bean.Test;
public interface TestService {
Test login(String name, String password);
}
Service層 接口實現類
package com.top.service;
import com.top.bean.Test;
import com.top.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class TestServiceImpl implements TestService {
@Autowired
private TestMapper testMapper;
@Override
public Test login(String name, String password) {
return testMapper.login(name, password);
}
}
Controller層
package com.top.controller;
import com.alibaba.fastjson.JSON;
import com.top.bean.Test;
import com.top.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.Map;
@Controller
@RequestMapping("/test")
public class TestController {
@Autowired
private TestService testService;
@RequestMapping("login")
public String login(String name ,String password){
Test login = testService.login(name, password);
if (login != null ) {
return "redirect:/index.jsp";
} else {
return "redirect:/login.jsp";
}
}
}
數據庫大家自己創建,這裏就不詳細創建了,頁面我這裏這是簡單的寫了一個登錄的頁面
切記一定要創建數據庫並將 數據庫配置文件的數據庫名稱改爲自己創建的名稱
- 這時候運行
tomcat
,瀏覽器會自動加載,如果,沒有加載則訪問URL
http://localhost:8080/ssmDemo
- 會看到如下頁面,登錄自己的姓名和密碼進行驗證登錄。
- 項目結構如下:
到此爲止,整個SSM
項目就完美的整合完成了。如自己還有什麼需求可以在此基礎上繼續編寫,如需還有什麼問題可在下方評論。謝謝🙏
希望可以幫助到更多的學者💪,後續也會更新很多文章,想要了解學習的可以持續關注下喲😁