赞
踩
SSM项目:springMVC为控制器、spring 为事务层、 MyBatis 负责持久
首先看下集成后项目结构:
1、打开IntelliJ IDEA,点击 "File" -> "New" -> "Project"。
点击Finish,此时我们就已经创建了一个maven-web项目;
2、在src/main 下,创建 java和resources文件夹;
在java文件夹下:创建controller,service,dao,entity等文件夹。
在resources文件夹下创建mappers(存放实体类映射.xml文件)文件夹和配置文件。
applicationContext.xml --spring 容器相关配置;
dispatcherServlet.xml --springMvc 相关配置;
mybatis-config.xml --mybatis 相关配置;
generatorConfig.xml --自动生成Dao、Model层相关代码;
jdbc.properties --jdbc常量配置;
log4j.properties --集成log4j
3、在webapp/WEB-INF 下,创建views文件夹,存放静态资源;
web.xml --web-servlet相关配置;
4、pom文件相关依赖
- <?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>org.example</groupId>
- <artifactId>web-ssm</artifactId>
- <version>1.0-SNAPSHOT</version>
- <packaging>war</packaging>
-
- <name>web-ssm Maven Webapp</name>
- <!-- FIXME change it to the project's website -->
- <url>http://www.example.com</url>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <maven.compiler.source>1.7</maven.compiler.source>
- <maven.compiler.target>1.7</maven.compiler.target>
- <!-- spring版本号 -->
- <spring.version>4.2.5.RELEASE</spring.version>
- <!-- mybatis版本号 -->
- <mybatis.version>3.2.4</mybatis.version>
- <!-- log4j日志文件管理包版本 -->
- <slf4j.version>1.6.6</slf4j.version>
- <log4j.version>1.2.12</log4j.version>
- <!-- log4j日志文件管理包版本 -->
- <slf4j.version>1.6.6</slf4j.version>
- <log4j.version>1.2.12</log4j.version>
- </properties>
-
-
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.11</version>
- <scope>test</scope>
- </dependency>
- <!-- spring核心包 -->
- <!-- springframe start -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</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-oxm</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-jdbc</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-aop</artifactId>
- <version>${spring.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>${spring.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <!-- springframe end -->
-
- <!-- 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.2.2</version>
- </dependency>
- <!-- mysql驱动包 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.19</version>
- </dependency>
- <!-- c3p0 -->
- <dependency>
- <groupId>com.mchange</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.5.5</version>
- </dependency>
- <!-- junit测试包 -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.11</version>
- <scope>test</scope>
- </dependency>
- <!-- jstl -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <version>2.2.1-b03</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- servlet -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
- <!-- json数据 -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>2.7.1</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>2.7.1</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.7.1</version>
- </dependency>
- <dependency>
- <groupId>net.sf.json-lib</groupId>
- <artifactId>json-lib</artifactId>
- <version>2.4</version>
- <classifier>jdk15</classifier>
- </dependency>
- <!-- commons -->
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>commons-pool</groupId>
- <artifactId>commons-pool</artifactId>
- <version>1.5.6</version>
- </dependency>
- <dependency>
- <groupId>commons-dbcp</groupId>
- <artifactId>commons-dbcp</artifactId>
- <version>1.4</version>
- </dependency>
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- <version>1.8.3</version>
- </dependency>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.1</version>
- </dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.9</version>
- </dependency>
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>jsr250-api</artifactId>
- <version>1.0</version>
- </dependency>
-
- <dependency>
- <groupId>net.sf.ezmorph</groupId>
- <artifactId>ezmorph</artifactId>
- <version>1.0.6</version>
- </dependency>
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>1.1</version>
- </dependency>
- <!--<dependency>
- <groupId>taglibs</groupId>
- <artifactId>standard</artifactId>
- <version>1.1.2</version>
- </dependency>-->
- <!-- 日志文件管理包 -->
- <!-- log start -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <!--上传-->
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.3.1</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.4</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
- <dependency>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-core</artifactId>
- <version>1.3.5</version>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>3.2.5</version>
- </dependency>
-
- <!-- log end -->
- </dependencies>
-
- <build>
- <finalName>web-ssm</finalName>
- <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
- <plugins>
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <version>3.1.0</version>
- </plugin>
- <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.0.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.0</version>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.22.1</version>
- </plugin>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.2.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.5.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.8.2</version>
- </plugin>
- </plugins>
- </pluginManagement>
-
-
- <plugins>
- <plugin>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-maven-plugin</artifactId>
- <version>1.3.2</version>
- <configuration>
- <!--允许移动生成的文件-->
- <verbose>true</verbose>
- <!--允许覆盖生成的文件-->
- <overwrite>true</overwrite>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
注*:
1*、本例MySQL Server 8.0
2*、使用 mybatis-generator-maven-plugin,在pom.xml中<pluginManagement>和<plugins>要同级,如下:
- <build>
- <finalName>web-ssm</finalName>
- <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
- </pluginManagement>
-
- <plugins>
- <plugin>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-maven-plugin</artifactId>
- <version>1.3.2</version>
- <configuration>
- <!--允许移动生成的文件-->
- <verbose>true</verbose>
- <!--允许覆盖生成的文件-->
- <overwrite>true</overwrite>
- </configuration>
- </plugin>
- </plugins>
- </build>
5、applicationContext.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:context="http://www.springframework.org/schema/context"
- 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/springtx.xsd">
-
- <!--配合MyBatis-->
- <!--配置数据库参数-->
- <context:property-placeholder location="classpath:jdbc.properties"/>
- <!--数据库连接池-->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
- <!--配置连接池属性-->
- <property name="driverClass" value="${jdbc.driver}"/>
- <property name="jdbcUrl" value="${jdbc.url}"/>
- <property name="user" value="${jdbc.username}"/>
- <property name="password" value="${jdbc.password}"/>
- <!--c3p0连接池私有属性-->
- <property name="maxPoolSize" value="${maxPoolSize}"/>
- <property name="minPoolSize" value="${minPoolSize}"/>
- <property name="autoCommitOnClose" value="false"/>
- <property name="checkoutTimeout" value="${checkoutTimeout}"/>
- <property name="acquireRetryAttempts" value="${acquireRetryAttempts}"/>
- <property name="initialPoolSize" value="${initialPoolSize}"/>
- </bean>
-
- <!-- 配置 SqlSessionFactory 对象,spring和MyBatis完美整合,不需要mybatis的配置映射文件-->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!--注入数据库连接池-->
- <property name="dataSource" ref="dataSource"/>
- <!-- 配置 MyBaties 全局配置⽂件:mybatis-config.xml -->
- <property name="configLocation" value="classpath:mybatis-config.xml"/>
- <!-- 扫描 model 包 使⽤别名 -->
- <property name="typeAliasesPackage" value="org.example.entity"/>
- <!-- 扫描 sql 配置⽂件:mapper 需要的 xml ⽂件 -->
- <property name="mapperLocations" value="classpath:mappers/*.xml"/>
- </bean>
- <!-- 配置扫描 dao 接⼝包, 动态实现 dao 接⼝, 注⼊到 Spring 容器中 -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <!-- 注⼊ sqlSessionFactory -->
- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
- <!-- 给出需要扫描 dao 接⼝包 -->
- <property name="basePackage" value="org.example.dao"/>
- </bean>
- <!--spring-service-->
- <!-- 扫描 service 包下所有使⽤注解的类型 -->
- <context:component-scan base-package="org.example.service"/>
-
- <!-- 配置事务管理器 -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <!-- 注⼊数据库连接池 -->
- <property name="dataSource" ref="dataSource"/>
- </bean>
- </beans>
6、dispatcherServlet.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:p="http://www.springframework.org/schema/p"
- 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/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd">
-
- <!-- controller扫描器 -->
- <context:component-scan base-package="org.example.controller"/>
-
-
- <!-- 配置注解驱动 -->
- <mvc:annotation-driven/>
- <!-- 视图解析器 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <!--前缀-->
- <property name="prefix" value="/WEB-INF/views/"/>
- <!--后缀-->
- <property name="suffix" value=".jsp"/>
- </bean>
-
- <!--静态资源默认servlet配置
- (1)加⼊对静态资源的处理: js,gif,png
- (2)允许使⽤"/"做整体映射
- -->
- <mvc:default-servlet-handler/>
- </beans>
7、mybatis-config.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>
- <settings>
- <setting name="mapUnderscoreToCamelCase" value="true"/>
- <setting name="jdbcTypeForNull" value="NULL"/>
-
- <!--显式的指定每个我们需要更改的配置的值,即使他是默认的。防止版本更新带来的问题 -->
- <setting name="cacheEnabled" value="true"/>
- <setting name="lazyLoadingEnabled" value="true"/>
- <setting name="aggressiveLazyLoading" value="false"/>
-
- <!-- 使⽤jdbc的getGeneratedKeys获取数据库⾃增主键值 -->
- <setting name="useGeneratedKeys" value="true" />
- <!-- 使⽤列别名替换列名 默认:true -->
- <setting name="useColumnLabel" value="true" />
- <setting name="cacheEnabled" value="true"/>
- </settings>
- </configuration>
8、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>
- <!--导入属性配置 jdbc配置文件-->
- <properties resource="jdbc.properties"></properties>
-
- <!--指定特定数据库的jdbc驱动jar包的位置 此处需要指明mysql-connector-java-5.1.30.jar的绝对路径,否则会报错!-->
- <!-- <classPathEntry location="D:\database\mysql\jar\mysql-connector-java-5.1.37-bin.jar"/>-->
- <classPathEntry location="E:\MyRepository\mysql\mysql-connector-java\8.0.19\mysql-connector-java-8.0.19.jar"/>
- <context id="default" targetRuntime="MyBatis3">
-
- <!-- optional,旨在创建class时,对注释进行控制 -->
- <commentGenerator>
- <property name="suppressDate" value="true"/>
- <!-- 是否去除自动生成的注释 true:是 : false:否 -->
- <property name="suppressAllComments" value="true"/>
- </commentGenerator>
-
- <!--jdbc的数据库连接 -->
- <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}"
- userId="${jdbc.username}" password="${jdbc.password}">
- </jdbcConnection>
-
- <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
- <javaTypeResolver>
- <property name="forceBigDecimals" value="false"/>
- </javaTypeResolver>
-
- <!-- 生成模型model的包名和位置 此处需要根据自己项目做调整-->
- <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
- targetPackage 指定生成的model生成所在的包名
- targetProject 指定在该项目下所在的路径
- -->
- <!--<javaModelGenerator targetPackage="com.mmall.pojo" targetProject=".\src\main\java">-->
- <javaModelGenerator targetPackage="org.example.entity" 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对象不会有 setter方法,只有构造方法 -->
- <property name="immutable" value="false"/>
- </javaModelGenerator>
-
- <!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
- <!--<sqlMapGenerator targetPackage="mappers" targetProject=".\src\main\resources">-->
- <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">
- <property name="enableSubPackages" value="false"/>
- </sqlMapGenerator>
-
- <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
- type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
- type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
- type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
- -->
-
- <!-- targetPackage:mapper接口dao生成的位置 -->
- <!--<javaClientGenerator type="XMLMAPPER" targetPackage="com.mmall.dao" targetProject=".\src\main\java">-->
- <javaClientGenerator type="XMLMAPPER" targetPackage="org.example.dao" targetProject="./src/main/java">
- <!-- enableSubPackages:是否让schema作为包的后缀 -->
- <property name="enableSubPackages" value="false"/>
- </javaClientGenerator>
-
- <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
- <table tableName="student" domainObjectName="Student" enableCountByExample="false"
- enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
- selectByExampleQueryId="false">
- </table>
- <!-- 数据库中该字段的类型是 txt ,不同版本生成对应字体类的属性类型可能不同,因此指定转换类型 -->
-
-
- <!-- mybatis插件的搭建 -->
- </context>
- </generatorConfiguration>
9、jdbc.properties 相关配置:
- #jdbc.driver=com.mysql.jdbc.Driver
- jdbc.driver=com.mysql.cj.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/testdata?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
- jdbc.username=root
- jdbc.password=yhuan
- #最大连接数
- maxPoolSize=20
- #最小连接数
- minPoolSize=10
- #连接超时时间
- checkoutTimeout=60000
- #失败重连次数
- acquireRetryAttempts=3
- #初始化连接数量
- initialPoolSize=10
10、log4j.properties 相关配置:
### set log levels ### log4j.rootLogger = INFO,D ###输出到控制台### log4j.logger.toConsole=debug,stdout log4j.appender.stdout = org.apache.log4j.ConsoleAppender 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} [%5p] - %c -%F(%L) -%m%n ### 输出到日志文件 ### ## 其中File 可以采用绝对路径 亦可以采用相对路径 catalina.home 是tomcat目录 如果没有logs文件夹 将会报错 ## ## 更加倾向于将日志文件放在 D:/database/log4j/log4jTest/logtest.log ## ## 绝对路径如:e:/logtest.log ## log4j.logger.daily=INFO,D log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = E:/log4j/log4jTest/logtest.log log4j.appender.D.Append = true log4j.appender.D.Threshold = INFO log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n ##log4j.logger.org.apache.ibatis=debug,stdout ##log4j.logger.java.sql=debug,stdout
11、web.xml 相关配置:
- <!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
-
- <web-app>
- <display-name>Archetype Created Web Application</display-name>
- <!--Spring MVC 配置 并添加监听-->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:applicationContext.xml</param-value>
- </context-param>
-
- <!-- 字符过滤器 传值乱码-->
- <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>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
-
- <!--配置前端控制器 进行请求分发 DispatcherServlet本质也是一个Servlet -->
- <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:dispatcherServlet.xml</param-value>
- </init-param>
- <!--标记容器启动的时候就启动这个servlet-->
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>SpringMVC</servlet-name>
- <!--拦截所有-->
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!-- <absolute-ordering />-->
- </web-app>
12、使用mybatis-generator-maven-plugin:
右键→Run Maven Build,即可在generatorConfig.xml配置的路径下生成Dao,Model层代码。
13、项目添加tomcat启动:
14、新建TestController.java,启动tomcat,测试---
- package org.example.controller;
-
- import org.example.entity.Student;
- import org.example.entity.User;
- import org.example.service.TestService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.util.List;
-
- @Controller
- @RequestMapping(value = "/test")
- public class TestController {
-
- @Autowired
- private TestService testService;
-
- @RequestMapping(value = "/testQuery",produces = "text/html;charset=UTF-8")
- @ResponseBody
- public String testQuery(){
-
- System.out.println("TestController--------------------------------------------");
- List<User> userList = testService.query();
- return userList.get(0).getName();
- }
-
- @RequestMapping(value = "/student/{id}",produces = "text/html;charset=UTF-8")
- @ResponseBody
- public String student(@PathVariable("id") Integer id){
-
- System.out.println("student-id:"+ id + "------------------------");
- Student student = testService.student(id);
- return student.getName();
- }
-
- @RequestMapping(value = "/hello")
- public String hello(){
- return "hello";
- }
-
- public static void main(String[] args) {
- try{
- Class.forName("com.mysql.jdbc.Driver");
- Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdata?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8","root","yhuan");
- Statement myStmt = conn.createStatement();
- ResultSet rs = myStmt.executeQuery("SELECT * FROM user");
- while(rs.next()) {
- System.out.println(rs.getString("name"));
- }
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
注*:内附main方法,自测数据库连通性。
新建/webapp/WEB-INF/views/hello.jsp
- <%--
- Created by IntelliJ IDEA.
- User: Administrator
- Date: 2024/1/16
- Time: 16:20
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>this is helloPage</title>
- </head>
- <body>
- <h3>这是SSM框架的 hello页面</h3>
- </body>
- </html>
http://localhost:8080/web-ssm/test/testQuery
http://localhost:8080/web-ssm/test/hello
参考文章:IDEA 详细SSM框架的搭建_ssm 文件夹结构-CSDN博客
end!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。