
目录
1.2 选择maven --> 选择你的jdk版本 --> 勾选Create from archetype
1.3 随便选中一条输入webapp进行模糊查询然后选中下列我选中的内容(重要!不可错)
1.4 填写你的项目名 --> 选择项目保存到你的电脑地址 --> 随便写(最好用两个单词中间用.隔开) --> 和项目名保持一致
1.6 正在创建中...请稍后(注意!!!创建maven项目请先连接网络)
1.7 控制台出现(BUILD SUCCESS)代表Maven项目已创建成功
2.2 new一个新的文件夹选中(new --> Directory)
2.3 此操作要操作两遍因为要添加下方图中这两个文件夹(java,resources)
2.5 new一个新的文件夹(new --> Directory)
4.1 jdbc.properties(添加到main文件夹 --> resources文件夹下面)
4.2 log4j2.xml(添加到main文件夹 --> resources文件夹下面)
4.3 mybatis.cfg.xml(添加到main文件夹 --> resources文件夹下面)
4.4 spring.xml(添加到main文件夹 --> resources文件夹下面)
4.5 spring-mybatis.xml(添加到main文件夹 --> resources文件夹下面)
4.6 spring-mvc.xml(添加到main文件夹 --> webapp文件夹 --> WEB-INF文件夹下面)
4.8 generatorConfig.xml(添加到main文件夹 --> resources文件夹下面)
5. 使用junit and Tomcat分别测试是否搭建成功













- "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.0modelVersion>
-
- <groupId>com.jmhgroupId>
- <artifactId>mybatis03artifactId>
- <version>1.0-SNAPSHOTversion>
- <packaging>warpackaging>
-
- <name>mybatis03 Maven Webappname>
-
- <url>http://www.example.comurl>
-
-
- <properties>
- <spring.version>5.0.2.RELEASEspring.version>
- <maven.compiler.source>1.8maven.compiler.source>
- <maven.compiler.target>1.8maven.compiler.target>
- <jackson.version>2.9.3jackson.version>
- <shiro.version>1.2.5shiro.version>
- <slf4j.version>1.7.7slf4j.version>
- <log4j2.version>2.9.1log4j2.version>
- properties>
-
- <dependencies>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-coreartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-beansartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-contextartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-ormartifactId>
- <version>${spring.version}version>
- dependency>
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-txartifactId>
- <version>${spring.version}
- version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-aspectsartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-testartifactId>
- <version>${spring.version}version>
- dependency>
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>${spring.version}version>
- dependency>
-
-
- <dependency>
- <groupId>jstlgroupId>
- <artifactId>jstlartifactId>
- <version>1.2version>
- dependency>
- <dependency>
- <groupId>taglibsgroupId>
- <artifactId>standardartifactId>
- <version>1.1.2version>
- dependency>
-
-
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-databindartifactId>
- <version>${jackson.version}version>
- <exclusions>
- <exclusion>
- <artifactId>jackson-annotationsartifactId>
- <groupId>com.fasterxml.jackson.coregroupId>
- exclusion>
- exclusions>
- dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-coreartifactId>
- <version>${jackson.version}version>
- dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-annotationsartifactId>
- <version>${jackson.version}version>
- dependency>
-
-
- <dependency>
- <groupId>commons-fileuploadgroupId>
- <artifactId>commons-fileuploadartifactId>
- <version>1.3.3version>
- dependency>
-
-
- <dependency>
- <groupId>org.hibernategroupId>
- <artifactId>hibernate-validatorartifactId>
- <version>6.0.7.Finalversion>
- dependency>
-
-
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <version>4.12version>
- <scope>testscope>
- dependency>
-
-
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>javax.servlet-apiartifactId>
- <version>4.0.0version>
- <scope>providedscope>
- dependency>
-
-
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatisartifactId>
- <version>3.4.5version>
- dependency>
-
-
-
- <dependency>
- <groupId>com.github.pagehelpergroupId>
- <artifactId>pagehelperartifactId>
- <version>5.1.2version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatis-springartifactId>
- <version>1.3.1version>
- dependency>
-
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>5.1.44version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.apache.commonsgroupId>
- <artifactId>commons-dbcp2artifactId>
- <version>2.1.1version>
- dependency>
-
-
- <dependency>
- <groupId>org.apache.commonsgroupId>
- <artifactId>commons-pool2artifactId>
- <version>2.4.3version>
- dependency>
-
-
-
-
- <dependency>
- <groupId>org.slf4jgroupId>
- <artifactId>slf4j-apiartifactId>
- <version>${slf4j.version}version>
- dependency>
- <dependency>
- <groupId>org.slf4jgroupId>
- <artifactId>jcl-over-slf4jartifactId>
- <version>${slf4j.version}version>
- <scope>runtimescope>
- <exclusions>
- <exclusion>
- <artifactId>slf4j-apiartifactId>
- <groupId>org.slf4jgroupId>
- exclusion>
- exclusions>
- dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-slf4j-implartifactId>
- <version>${log4j2.version}version>
- <exclusions>
- <exclusion>
- <artifactId>slf4j-apiartifactId>
- <groupId>org.slf4jgroupId>
- exclusion>
- exclusions>
- dependency>
-
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-coreartifactId>
- <version>${log4j2.version}version>
- dependency>
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-apiartifactId>
- <version>${log4j2.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-webartifactId>
- <version>${log4j2.version}version>
- dependency>
-
- <dependency>
- <groupId>com.lmaxgroupId>
- <artifactId>disruptorartifactId>
- <version>3.2.0version>
- dependency>
-
-
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- <version>1.18.20version>
- <scope>providedscope>
- dependency>
-
-
-
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-coreartifactId>
- <version>${shiro.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-webartifactId>
- <version>${shiro.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-springartifactId>
- <version>${shiro.version}version>
- dependency>
- dependencies>
-
-
-
- <build>
- <finalName>ssmfinalName>
- <resources>
-
- <resource>
- <directory>src/main/javadirectory>
- <includes>
- <include>**/*.xmlinclude>
- includes>
- resource>
-
- <resource>
- <directory>src/main/resourcesdirectory>
- <includes>
- <include>jdbc.propertiesinclude>
- <include>*.xmlinclude>
- includes>
- resource>
- resources>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.mybatis.generatorgroupId>
- <artifactId>mybatis-generator-maven-pluginartifactId>
- <version>1.3.2version>
- <dependencies>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>5.1.44version>
- dependency>
- dependencies>
- <configuration>
- <overwrite>trueoverwrite>
- configuration>
- plugin>
- plugins>
- pluginManagement>
- build>
- project>
下方配置文件需要修改:
1. 你的数据库名称
2. 你的数据库登录账号
3. 你的数据库登录密码
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/你的数据库名称?useUnicode=true&characterEncoding=UTF-8
- jdbc.username=你的数据库登录账号
- jdbc.password=你的数据库登录密码
- "1.0" encoding="UTF-8"?>
-
- <Configuration status="WARN" monitorInterval="30">
- <Properties>
-
- <Property name="LOG_HOME">/root/workspace/lucenedemo/logsProperty>
- <property name="ERROR_LOG_FILE_NAME">/root/workspace/lucenedemo/logs/errorproperty>
- <property name="WARN_LOG_FILE_NAME">/root/workspace/lucenedemo/logs/warnproperty>
- <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t-%L] %-5level %logger{36} - %msg%nproperty>
- Properties>
-
- <Appenders>
-
- <Console name="Console" target="SYSTEM_OUT">
-
- <ThresholdFilter level="trace" onMatch="ACCEPT"
- onMismatch="DENY" />
-
-
- <PatternLayout pattern="${PATTERN}" />
- Console>
-
-
-
- <File name="log" fileName="logs/test.log" append="false">
- <PatternLayout
- pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
- File>
-
- <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
- filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
-
- <ThresholdFilter level="info" onMatch="ACCEPT"
- onMismatch="DENY" />
- <PatternLayout
- pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
- <Policies>
-
-
-
- <TimeBasedTriggeringPolicy interval="1"
- modulate="true" />
-
-
- Policies>
- RollingFile>
-
- <RollingFile name="RollingFileWarn" fileName="${WARN_LOG_FILE_NAME}/warn.log"
- filePattern="${WARN_LOG_FILE_NAME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
- <ThresholdFilter level="warn" onMatch="ACCEPT"
- onMismatch="DENY" />
- <PatternLayout
- pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
- <Policies>
- <TimeBasedTriggeringPolicy />
- <SizeBasedTriggeringPolicy size="2 kB" />
- Policies>
-
- <DefaultRolloverStrategy max="20" />
- RollingFile>
-
- <RollingFile name="RollingFileError" fileName="${ERROR_LOG_FILE_NAME}/error.log"
- filePattern="${ERROR_LOG_FILE_NAME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd-HH-mm}-%i.log">
- <ThresholdFilter level="error" onMatch="ACCEPT"
- onMismatch="DENY" />
- <PatternLayout
- pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
- <Policies>
-
- <TimeBasedTriggeringPolicy interval="1"
- modulate="true" />
-
- Policies>
- RollingFile>
-
- Appenders>
-
-
- <Loggers>
-
- <logger name="org.springframework" level="INFO">logger>
- <logger name="org.mybatis" level="INFO">logger>
-
-
- <logger name="org.springframework" level="ERROR" />
- <logger name="org.hibernate" level="ERROR" />
- <logger name="org.apache.struts2" level="ERROR" />
- <logger name="com.opensymphony.xwork2" level="ERROR" />
- <logger name="org.jboss" level="ERROR" />
-
-
-
- <root level="all">
- <appender-ref ref="Console" />
- <appender-ref ref="RollingFileInfo" />
- <appender-ref ref="RollingFileWarn" />
- <appender-ref ref="RollingFileError" />
- root>
-
- Loggers>
-
- Configuration>
- "1.0" encoding="UTF-8"?>
- configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
-
- <settings>
- <setting name="logImpl" value="LOG4J2"/>
- settings>
-
-
- <plugins>
- <plugin interceptor="com.github.pagehelper.PageInterceptor">
- plugin>
- plugins>
-
- configuration>
- "1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- <property name="ignoreResourceNotFound" value="true" />
- <property name="locations">
- <list>
- <value>classpath:jdbc.propertiesvalue>
-
-
- list>
- property>
- bean>
-
- <import resource="spring-mybatis.xml"/>
-
- beans>
下方配置文件需要修改(注!!!需要修改的地方已用注释标注):
- "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"
- xmlns:aop="http://www.springframework.org/schema/aop"
- 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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
-
-
-
-
-
-
- <context:component-scan base-package="com.jmh.shiro" use-default-filters="true">
- <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-
- context:component-scan>
-
-
-
-
-
-
-
-
- <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${jdbc.driver}"/>
- <property name="url" value="${jdbc.url}"/>
- <property name="username" value="${jdbc.username}"/>
- <property name="password" value="${jdbc.password}"/>
-
- <property name="initialSize" value="10"/>
-
- <property name="maxTotal" value="100"/>
-
- <property name="maxIdle" value="50"/>
-
- <property name="minIdle" value="10"/>
-
-
- <property name="maxWaitMillis" value="-1"/>
- bean>
-
-
-
-
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
-
- <property name="dataSource" ref="dataSource"/>
-
- <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
-
-
-
- <property name="mapperLocations" value="classpath:com/jmh/shiro/**/mapper/*.xml"/>
-
-
-
- <property name="typeAliasesPackage" value="com.jmh.shiro.model"/>
- bean>
-
-
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-
-
-
-
- <property name="basePackage" value="com/jmh/shiro/**/mapper"/>
- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
- bean>
-
-
-
-
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource"/>
- bean>
-
-
- <tx:annotation-driven transaction-manager="transactionManager"/>
-
-
- <aop:aspectj-autoproxy/>
- beans>
下方配置文件需要修改(注!!!需要修改的地方已用注释标注):
- "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-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
-
-
-
-
-
-
- <context:component-scan base-package="com.jmh.shiro" use-default-filters="false">
- <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-
- context:component-scan>
-
-
-
-
- <mvc:annotation-driven>mvc:annotation-driven>
-
-
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
-
- <property name="viewClass"
- value="org.springframework.web.servlet.view.JstlView">property>
- <property name="prefix" value="/WEB-INF/jsp/"/>
- <property name="suffix" value=".jsp"/>
- bean>
-
-
- <mvc:resources location="/static/css/" mapping="/static/css/**"/>
- <mvc:resources location="/static/images/" mapping="/static/images/**"/>
- <mvc:resources location="/static/js/" mapping="/static/js/**"/>
-
- beans>
下方配置文件需要修改(注!!!需要修改的地方已用注释标注):
1. 需要修改01(你要映射的.xml文件名)
2. 需要修改02 (中文乱码过滤器配置(已在下方提供代码资源))
3. 需要修改03 (那里面的.xml文件修改成上方4.6添加的spring-mvc.xml文件名即可)
- "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>Archetype Created Web Applicationdisplay-name>
-
-
- <context-param>
- <param-name>contextConfigLocationparam-name>
-
- <param-value>classpath:spring.xmlparam-value>
- context-param>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
- listener>
-
-
-
- <listener>
- <listener-class>org.springframework.web.util.IntrospectorCleanupListenerlistener-class>
- listener>
-
-
- <filter>
- <filter-name>encodingFilterfilter-name>
-
- <filter-class>com.jmh.shiro.utils.EncodingFiterfilter-class>
-
- <async-supported>trueasync-supported>
- <init-param>
- <param-name>encodingparam-name>
- <param-value>UTF-8param-value>
- init-param>
- filter>
- <filter-mapping>
- <filter-name>encodingFilterfilter-name>
- <url-pattern>/*url-pattern>
- filter-mapping>
-
-
- <servlet>
- <servlet-name>SpringMVCservlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
-
- <init-param>
- <param-name>contextConfigLocationparam-name>
-
- <param-value>/WEB-INF/spring-mvc.xmlparam-value>
- init-param>
- <load-on-startup>1load-on-startup>
-
- <async-supported>trueasync-supported>
- servlet>
- <servlet-mapping>
- <servlet-name>SpringMVCservlet-name>
- <url-pattern>/url-pattern>
- servlet-mapping>
- web-app>
- package com.jmh.ssm.utils;
-
- import javax.servlet.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.util.Map;
-
- /**
- * 中文乱码处理
- *
- */
- public class EncodingFiter implements Filter {
-
- private String encoding = "UTF-8";// 默认字符集
-
- public EncodingFiter() {
- super();
- }
-
- public void destroy() {
- }
-
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
- throws IOException, ServletException {
- HttpServletRequest request = (HttpServletRequest) servletRequest;
- HttpServletResponse response = (HttpServletResponse) servletResponse;
-
- String method = request.getMethod();
- if (method.equalsIgnoreCase("get")) {
- Map
map = (Map) request.getParameterMap();// 保存所有参数名=参数值(数组)的Map集合 - for (String[] values : map.values()) {
- for (int i = 0; i < values.length; i++) {
- values[i] = new String(values[i].getBytes("ISO-8859-1"), this.encoding);
- }
- }
- } else if (method.equalsIgnoreCase("post")) {
- request.setCharacterEncoding(this.encoding);
- }
- response.setContentType("text/html;charset=" + this.encoding);
-
- chain.doFilter(servletRequest, servletResponse);
- }
-
- public void init(FilterConfig filterConfig) throws ServletException {
- String s = filterConfig.getInitParameter("encoding");// 读取web.xml文件中配置的字符集
- if (null != s && !s.trim().equals("")) {
- this.encoding = s.trim();
- }
- }
-
- }
下方配置文件需要修改(注!!!需要修改的地方已用注释标注):
1. 需要修改01 (你的mysql jar包的放置地址路径位置)
2. 需要修改02 (生成实体类的模块位置比如xxx.xxx.xxx.model)
3. 需要修改03 (生成sql映射文件位置)
4. 需要修改04 (生成mapper接口位置)
5. 最后就是table标签需要修改的属性值!一个table标签就是一张表可以这么理解
需要修改的table标签也就两个属性:
5.1 tableName="这里填写的就是你要生成的表名称"
5.2 domainObjectName="这里就是你要生成的表对应的实体类名称"
- "1.0" encoding="UTF-8" ?>
- 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"/>
-
-
-
-
- <classPathEntry location="E:\\mysql"/>
-
-
- <context id="infoGuardian">
-
- <commentGenerator>
- <property name="suppressAllComments" value="true"/>
- <property name="suppressDate" value="true"/>
- commentGenerator>
-
-
- <jdbcConnection driverClass="${jdbc.driver}"
- connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
-
-
- <javaTypeResolver>
-
- <property name="forceBigDecimals" value="false"/>
- javaTypeResolver>
-
-
-
-
-
-
- <javaModelGenerator targetPackage="com.jmh.shiro.model"
- targetProject="src/main/java">
-
- <property name="enableSubPackages" value="false"/>
-
- <property name="constructorBased" value="true"/>
-
- <property name="trimStrings" value="false"/>
-
- <property name="immutable" value="false"/>
- javaModelGenerator>
-
-
-
-
- <sqlMapGenerator targetPackage="com.jmh.shiro.mapper"
- targetProject="src/main/java">
-
- <property name="enableSubPackages" value="false"/>
- sqlMapGenerator>
-
-
-
-
-
-
-
- <javaClientGenerator targetPackage="com.jmh.shiro.mapper"
- targetProject="src/main/java" type="XMLMAPPER">
-
- <property name="enableSubPackages" value="false"/>
- javaClientGenerator>
-
-
-
-
-
-
- <table schema="" tableName="t_sys_user" domainObjectName="User"
- enableCountByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" enableUpdateByExample="false">
-
-
-
-
- table>
- <table schema="" tableName="t_sys_permission" domainObjectName="Permission"
- enableCountByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" enableUpdateByExample="false">
-
-
-
-
- table>
- <table schema="" tableName="t_sys_role" domainObjectName="Role"
- enableCountByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" enableUpdateByExample="false">
-
-
-
-
- table>
-
-
-
- context>
- generatorConfiguration>
命令如下:
mybatis-generator:generate -e
好吧!我还是当个老保姆一步步带你们怎么添加好吧 [表情委屈委屈]
4.8.1.1

4.8.1.2 点击+号

4.8.1.3 选择Maven

4.8.1.4 注意!复制命令的时候不要多复制空

4.8.1.5

4.8.1.6 ok!下方就是生成成功啦 如果你没有像图中这个小企鹅的话你也可以忽略这个作用就是方便我们查看sql映射文件的代码...如果你想要这个功能的话下载Mybatis插件“ free mybatis plugins”如果没有这个插件的话就是版本问题就下载Mybatis插件‘’ MybatisX ”

ok!ssm项目基本就搭建好了然后下方我们就测试一下吧
5.1.1 需要在Mapper层接口添加@Repository注解
@Repository 将DAO类声明为Bean3
5.1.2 Service层代码 需在service层接口添加@Transactional注解
@Transactional 注解配置事务,个人感觉写XML配置声明式事务更加简单
@Transactional(readOnly = true) 在方法前面加上就代表是只读事务
- package com.jmh.ssm.service;
-
- import com.jmh.ssm.model.User;
- import org.springframework.stereotype.Repository;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
-
- @Transactional
- public interface IUserService {
- int deleteByPrimaryKey(Integer userid);
-
- int insert(User record);
-
- int insertSelective(User record);
-
- @Transactional(readOnly = true)
- User selectByPrimaryKey(Integer userid);
-
- int updateByPrimaryKeySelective(User record);
-
- int updateByPrimaryKey(User record);
- }
5.1.3 Service.impl层代码 需在Service.impl层接口实现类添加@Service() 注解
@Service() 通常作用在业务层
@Resource的装配顺序:
1、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
2、指定了name或者type则根据指定的类型去匹配bean
3、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错
- package com.jmh.ssm.service.impl;
-
- import com.jmh.ssm.mapper.UserMapper;
- import com.jmh.ssm.model.User;
- import com.jmh.ssm.service.IUserService;
- import org.springframework.stereotype.Service;
-
- import javax.annotation.Resource;
-
- @Service
- public class UserServiceImpl implements IUserService {
- //注入
- @Resource
- private UserMapper userMapper;
-
- @Override
- public int deleteByPrimaryKey(Integer userid) {
- return 0;
- }
-
- @Override
- public int insert(User record) {
- return 0;
- }
-
- @Override
- public int insertSelective(User record) {
- return 0;
- }
-
- @Override
- public User selectByPrimaryKey(Integer userid) {
- return userMapper.selectByPrimaryKey(userid);
- }
-
- @Override
- public int updateByPrimaryKeySelective(User record) {
- return 0;
- }
-
- @Override
- public int updateByPrimaryKey(User record) {
- return 0;
- }
- }
5.1.4 使用junit单元测试
创建BaseTestCat类需添加以下两个注解:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring.xml"})spring.xml文件对应你要映射的.xml文件名
- package com.jmh.mybatis.service.impl;
-
- import org.junit.Before;
- import org.junit.runner.RunWith;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations={"classpath:spring.xml"})
- public class BaseTestCat {
- @Before
- public void setUp(){
-
- }
- }
- package com.jmh.ssm.service.impl;
-
- import com.jmh.ssm.model.User;
- import com.jmh.ssm.service.IUserService;
- import org.junit.Test;
-
- import javax.annotation.Resource;
-
- import static org.junit.Assert.*;
-
- public class UserServiceImplTest extends BaseTestCat{
- //注入
- @Resource
- private IUserService iUserService;
-
- @Override
- public void setUp() {
- super.setUp();
- }
-
- @Test
- public void deleteByPrimaryKey() {
- }
-
- @Test
- public void insert() {
- }
-
- @Test
- public void insertSelective() {
- }
-
- @Test
- public void selectByPrimaryKey() {
- User user = iUserService.selectByPrimaryKey(1);
- System.out.println(user);
- }
-
- @Test
- public void updateByPrimaryKeySelective() {
- }
-
- @Test
- public void updateByPrimaryKey() {
- }
- }

5.2.1 前端代码(在WEB-INF下面创建一个jsp文件夹 在jsp文件夹里面创建一个index.jsp页面)
- <%--
- Created by IntelliJ IDEA.
- User: 蒋明辉
- Date: 2022/8/21
- Time: 2:59
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>搭建SSM项目title>
- head>
- <body>
- <h1>搭建SSM项目成功!h1>
- body>
- html>
5.2.2 Controller层代码
- package com.jmh.ssm.controller;
-
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
-
- /**
- * Tomcat测试
- */
- @Controller
- public class SsmController {
-
- @RequestMapping("/")//请求路径:当前/是打开服务器自动请求的第一个页面
- public String toIndex(){
- return "index";//跳转视图名称
- }
- }
5.2.3 搭建Tomcat服务器









嘿嘿!现在最关键的时候到啦看看能不能第一时间访问index.jsp页面啦

ok!访问成功 测试完毕
