1.工具

  • apache-tomcat 7
  • apache-maven(后面详细讲!这东西我一开始也很懵逼)
  • mysql 5以上的版本
  • navicat(有了这个就不用cmd了,可以直接显示数据库,如下图,请自行百度绿色版QAQ)
  • IntelliJ IDEA 2016.3.4(http://www.jb51.net/softs/527945.html,根据连接教程慢慢安装吧~)

2.前言

前不久学完了spring和mybatis基础,于是决定来整合ssm。但是跟着学长的博客教程走的时候,出现了很多问题,于是打算转载一下他的博客,并加上我自己的理解,来写这么一篇博客。那么,请务必包含耐性,内容较多,慢慢来实现ssm的helloworld入门项目(原出处:http://blog.csdn.net/lxfhahaha/article/details/57078994

3.步骤

1)准备工作

1.1 mysql数据库安装,此处直接引用学长的教程 
http://blog.csdn.net/lxfhahaha/article/details/56847353

1.2 Tomcat安装 
http://blog.csdn.net/zyf2333/article/details/77387649

1.3 maven安装 
(安装教程:https://jingyan.baidu.com/article/fd8044fadc1ac15031137a12.html) 
此处我是下载到D盘,然后自己在maven目录下创建了一个repository文件夹(随便取名)
然后打开conf文件夹下的settings.xml,在大约100行左右,修改圈中的目录,此处目录写你刚刚创建的repository文件夹的目录,如上图中,我的repository目录是 D:\maven\repository,那此处就改成我的目录(没有<localRepository>的话就自己添加就是的了) 

接下来在大约150行左右,在<mirrors> 元素之间添加如下代码

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

最后效果如下 

1.3.1 maven是干嘛的? 
答:百度上也有,说是管理jar包的。通俗点就是:如果你以前有过使用eclipse的经验,就会知道,那么当我们需要引用外来jar包的时候,都会自己找jar包,然后下载并添加到项目运行环境中。而使用maven,则可以自动下载,不用我们自己去下载了。或者有时候我们用eclipse导入spring支持的包时候,也需要自己添加所需要的jar包,运用maven就可以自动添加了。 
1.3.2 创建repository文件夹干嘛? 
答:这个文件夹是用来存放maven自动下载的jar包的。我们第一次使用的时候,会进行下载,这样会耗一点时间,以后我们再用就直接用这个文件夹下的jar包了。 
1.3.3 为什么要修改setting.xml中的<localRepository> 
答:我们上面说了,maven会下载jar包并存放到自己创好的repository文件夹下。这个操作就是设置让maven把下载下来的jar包放入repository文件夹 
1.3.4 为什么要修改setting.xml中的<mirror> ? 
答:我们说了,maven会自动下载。那么它从哪个网站下载呢?此处就要用到这个<mirror> 了。由于maven默认的下载地址是国外的网站,可能由于墙的原因下载会超级超级慢。因此我们自动添加几个国内的网站,此处就用了阿里云。可以多添加几个网站,因为有些网站可能jar包不是很全,因此多添加几个以防万一 
1.3.5 要是添加了好几个网站后也没有我想要的jar包呢? 
答:要么再加几个网站,要么自己手动添加(方法后面讲)

1.4 自行安装IDEA,这里不多说了

2)创建maven项目

在创建之前,请自行在数据库中创建名为”example”的数据库,里面有个user表。如下: 

点击next,填写对应的GroupId,ArtifactId(GroupId随意填,我也不太知道有什么用。ArtifactId就是你项目名) 
(PS:接下来不要纠结我的项目名称,因为我是同时开一个helloworld2,然后又用到了我已经架构好了的helloworld项目) 

点击next,此处就用到maven了。 

然后next,最后finish,然后慢慢等。刚刚开始创建项目的时候,IDEA要花点时间来创建项目,等一下就好了(ps:有点慢的,慢慢等) 

创建完了后,原生态目录应该如下(目录说明:.idea和helloworld.iml不用管,也不要删,是IDEA本身的配置文件;src就是我们写项目的地方了。pom.xml是用来配合maven的。我们要用什么jar包,写在pom.xml中,d盘中的maven就会自动从<mirror> 中下载到repository文件夹中) 

接着,执行如下操作: 
1. 在main的java文件夹上,鼠标右键,找到 make directory as,选择Sources root 
2. 在main的resources文件夹上,鼠标右键,找到make directory as,选择Resources root 
3. 在test的java文件夹上,鼠标右键,找到make directory as,选择Test Sources root 
4. 在test的resources文件夹上,鼠标右键,找到make directory as,选择Test Resources root

继续修改目录结构,增加一些文件夹及文件,这些都是等一下要用的到的 
1. src->main->java下新建package com,再新建package springmvc,这两个对应我们刚开始的groupid 
2. springmvc包下新建四个包,controller包用来放前台url映射文件,dao用来放与数据库的接口文件,entity用来放实体类文件,service用来放自己定义的接口 
3. applicationContext.xml是spring配置文件 
4. sqlmap文件夹里面放实体与数据库的映射文件 
5. generator.xml和generator.properties是mybatis的配置文件 
6. jdbc.properties是数据库相关信息 
7. log4j.properties是日志配置文件 
8. webapp下新建css、images等文件,用来放前端资源 
9. web-inf下新建views文件件,jsp文件就放这里面了 
修改后目录如下: 
 
(PS:此处有些人项目可能不会像我这样是“树枝状”,而是变成了”com.springmvc.controller.dao.entity.service”。即包都挤在一起去了。解决方案:如图,把划线部分勾掉就好了) 

3)项目配置文件

3.1、配置pom.xml文件,引入所需要的jar包

之前说了,pom.xml是用来配合maven使用的,我们想要什么jar包,直接在pom.xml中写出来,maven就会自动帮我们下载。当你刚刚开始用maven时候,repository文件夹里面还是空的,因此要花时间来下载,请直接把接下来的代码复制黏贴。在这里,我们只需要关注<dependency>标签就好了
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springtest</groupId>
<artifactId>helloworld</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>helloworld Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.1.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<!-- springframe end --> <!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.1</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>5.1.29</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.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.4</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>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
</dependencies>
<build>
<finalName>helloworld</finalName>
<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>

3.2、jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=utf-8
username=root
#下面输入自己数据库的密码
password=输入自己数据库的密码吧
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

3.3、applicationContext.xml(配置spring)

<?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:beans="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.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-4.3.xsd" > <!-- ①:对com.springmvc包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<context:component-scan base-package="com.springmvc"/>
<mvc:annotation-driven />
<!-- 静态资源访问 -->
<!--如果webapp下你新建了文件夹,想访问里面的静态资源,那么就要在这配置一下-->
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/styles/" mapping="/styles/**"/>
<mvc:resources location="/js/" mapping="/js/**"/> <!-- Configures the @Controller programming model
<mvc:annotation-driven />-->
<!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean> <!-- 配置视图解析器,把控制器的逻辑视频映射为真正的视图 -->
<!-- /WEB-INF/jsp/start.jsp -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean> <!-- 配置dbcp数据库连接池 --> <!-- <context:property-placeholder location="classpath:db.properties"/> -->
<!--数据库配置 -->
<bean id = "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property> </bean> <!-- 数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="initialSize" value="1"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="5"/>
<property name="maxWait" value="80000"/>
</bean> <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <!-- 拦截器 -->
<mvc:interceptors>
<!-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
<!-- 定义无Controller的path<->view直接映射 -->
<mvc:view-controller path="/" view-name="redirect:/" />
<!-- 配置会话工厂SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:sqlmap/*Mapper.xml"/>
<property name="typeAliasesPackage" value="com.springmvc.entity" /> </bean> <!-- 在spring容器中配置mapper的扫描器产生的动态代理对象在spring的容器中自动注册,bean的id就是mapper类名(首字母小写)-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定扫描包的路径,就是mapper接口的路径,多个包中间以 半角逗号隔开 -->
<property name="basePackage" value="com.springmvc.dao"/>
<!-- 配置sqlSessionFactoryBeanName -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean> </beans>

3.4、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文件夹 将会报错 ##
## 更加倾向于将日志文件放在 tomcat的日志目录下${catalina.home}/logs/salesmanb2bError.log ##
## 绝对路径如:e:/salesmanb2bError.log ##
log4j.logger.daily=INFO,D
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${catalina.home}/logs/helloworld/helloworld.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

3.5、web.xml(在WEB-INF下)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>helloworld</display-name>
<!-- 配置编码方式-->
<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> <!-- 配置springmvc的前端控制器 指向spring-mvc.xml 程序在启动的时候就加载springmvc 可以接受所有请求 load-on-startup:表示启动容器时初始化该Servlet; -->
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 可以自定义servlet.xml配置文件的位置和名称, 默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath:spring/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 将前端URL请求和后台处理方法controller建立对应关系-->
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- Spring配置 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 取消对某一类文件的拦截-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.md</url-pattern>
</servlet-mapping> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath:spring/applicationContext.xml</param-value>
</context-param>
<!-- 欢迎页面-->
<welcome-file-list>
<welcome-file>/WEB-INF/views/index.jsp</welcome-file>
</welcome-file-list>
<!--404错误展示页面,可自行配置-->
<!--<error-page>-->
<!--<error-code>404</error-code>-->
<!--<location>/WEB-INF/views/404.jsp</location>-->
<!--</error-page>-->
<!--设置session失效时间为30分钟 -->
<session-config>
<session-timeout>600</session-timeout>
</session-config>
</web-app>

3.6、在WEB-INF/views/下创建index.jsp。自己随便写点啥东西

4)配置Tomcat

点击如图所示区域,进入“Edit Configurations” 

进入设置后,先点击“1”选择设置Tomcat,然后点击“2”选择本地Tomcat所在,最后点击“3”生效 

然后将项目部署到Tomcat中,如图(ps:第二步之后选择Artifact选项) 

返回来,将如图的”do nothing”改成“update…” 

运行 

5)mybatis generator配置

在applicationContext.xml中添加如下代码

<!-- 配置会话工厂SqlSessionFactory -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:sqlmap/*Mapper.xml"/>
<property name="typeAliasesPackage" value="com.springmvc.entity" /> </bean> <!-- 在spring容器中配置mapper的扫描器产生的动态代理对象在spring的容器中自动注册,bean的id就是mapper类名(首字母小写)-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定扫描包的路径,就是mapper接口的路径,多个包中间以 半角逗号隔开 -->
<property name="basePackage" value="com.springmvc.dao"/>
<!-- 配置sqlSessionFactoryBeanName -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>

generatorConfig.xml(ps:1、 “http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd“该xml中这句话可能红色报错,不用管的。2、第9行的location=”D:\maven\repository\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar” 是你自己的mysql.jar所在的位置,一定要填写对应的位置,不然就会报错。如果你之前是跟着我的存放目录走的话,应该就是这个路径的)

<?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="generator.properties"/> <classPathEntry
location="D:\maven\repository\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar" />
<context id="context1">
<!-- 注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->
<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 -->
</commentGenerator> <jdbcConnection driverClass="${driver}"
connectionURL="${url}"
userId="${username}"
password="${password}" /> <!-- 类型转换 -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <javaModelGenerator targetPackage="${modelPackage}"
targetProject="${modelProject}" />
<sqlMapGenerator targetPackage="${sqlPackage}" targetProject="${sqlProject}" />
<javaClientGenerator targetPackage="${mapperPackage}"
targetProject="${mapperProject}" type="XMLMAPPER" /> <!-- 如果需要通配所有表 直接用sql的通配符 %即可 -->
<table schema="" tableName="${table}" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false"/> </context>
</generatorConfiguration>

generator.properties 
说明:之前已经创建了一个example数据库,里面有个数据表user(第二大步“创建maven项目”下面)。然后modelPackage是等会连接数据库自动生成的实体类保存的位置,sqlPackage是生成xml映射文件保存的位置,mapperPackage是生成数据库接口保存的位置,table是数据库里面的表的名字

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=utf-8
username=root
password=************* #entity 包名和 java目录
modelPackage=com.springmvc.entity
modelProject=src/main/java
#sqlmap包名 和resources目录
sqlPackage=sqlmap
sqlProject=src/main/resources
#mapper包名和 java目录
mapperPackage=com.springmvc.dao
mapperProject=src/main/java table=user

配置完成,双击圈中的地方(ps:要是没有像我一样的maven目录,则按照如下步骤显示:“View->Tool Windows->Maven Project”即可显示出来) 

于是会自动创建图中三个文件 

进入UserMapper.java。在接口上方添加@Repository注释,然后将鼠标放到public interface UserMapper处,点击alt+enter键,接着点击create test 

勾选insert 
 
于是IDEA会自动帮我们创建个测试类 

代码如下

package com.springmvc.dao;

import com.springmvc.entity.User;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import static org.junit.Assert.*; /**
* Created by 11655 on 2017/3/11.
*/
public class UserMapperTest { private ApplicationContext applicationContext;
@Autowired
private UserMapper userMapper; @Before
public void setUp() throws Exception {
applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");//加载spring配置文件
userMapper = applicationContext.getBean(UserMapper.class);//在这里导入要测试的
} @After
public void tearDown() throws Exception { } @Test
public void insert() throws Exception {
User user = new User();
user.setId(12);
int result = userMapper.insertSelective(user);
System.out.println(result);
assert (result == 1); } }

然后点击图中有个小感叹号的地方,选择”run insert()” 


 
到此,ssm入门整合结束

最新文章

  1. python学习笔记-进程线程
  2. java读写file
  3. bower 问题
  4. matlab画图形函数 semilogx
  5. 【CodeForces 227A】Where do I Turn?叉积
  6. 简单版解决IE兼容性问题
  7. QLineEdit
  8. CSS3的background-size
  9. Redis 学习之简介及安装
  10. 关于CSS格式与布局中的基础知识的简单操作
  11. 桥接模式二(Bridge)
  12. C#多线程之异步编程
  13. js中对URL进行转码与解码
  14. 基于OpenCv和swing的图片/视频展示Java实现
  15. ArrayList实现动态数组原理
  16. Java连接Mysql数据库警告: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established
  17. vsftpd虚拟账户配置
  18. Eclipse环境安装Python插件PyDev
  19. Unity中角度与弧度之间的相互转换
  20. Claim-Based Identity for Windows: Technologies and Scenarios

热门文章

  1. Java学习之基本概念
  2. HDU 1028 Ignatius and the Princess III (母函数或者dp,找规律,)
  3. POJ 2524 Ubiquitous Religions (幷查集)
  4. Andriod Atom x86模拟器启动报错。
  5. Statelessness Provide credentials with the request. Each request MUST stand alone and should not be affected from previous conversation happened from same client in past.
  6. luogu3373 【模板】线段树2
  7. 数字和为sum的方法数(动态规划)
  8. 搭建java运行环境
  9. ${varname:-defaultvalue}
  10. LA-3716(sort的神用)