转载自博客园,附上原文地址https://www.cnblogs.com/hackyo/p/6646051.html?utm_source=itdadao&utm_medium=referral
本文中搭建了SSM框架,在他的基础上,我做了登录和注册的功能。
需要源码的戳这里–>SSM框架源码
请先重点看下面的这段话,有可能就帮你少走了很多弯路
这里列出我在搭建的时候遇到的问题,方便大家搭建的时候少走弯路;
文章容易出错的地方有,1、本人搭建的时候在pom文件中test没有使用4.12而是看到系统已经有了就没有改,所以导致第一步junit测试的时候出错,如果你也是这个错误就将pom文件中的版本改为4.12及以上;2、如果你提示关于IuserServiceImpl的错误,你可以尝试在你的mapper.xml文件中将工作区间加上(namespace=“你的dao接口的全路径”),3、注册的时候由于user类中有一个data类型的变量,所以直接在controller中将form表单中的数据加载到User实体中会报400的错误,这个时候需要在user实体中的data类型的字段上加上@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)注解,4、如果你在jsp或者html中对css、js、image等静态资源引用失败,推荐你使用在springmvc配置文件中使用mvc:default-servlet-handler/的方式,但是需要spring的版本在3.0.5及以上。暂时遇到的问题有这么多,希望能帮助到你们。
需要准备的环境:
idea 2017.1
jdk1.8
Maven 3.3.9
请提前将idea与Maven、jdk配置好,本次项目用的都是比较新的
注:配置完ide红线报错没关系!可以run!
步骤:
一、首先使用idea新建一个Maven webapp项目
点击Finish,第一次搭建可能会很慢,甚至可能需要VPN才能搭建成功
二、搭建目录结构
我这里列出的是搭建完了之后所有的目录和文件,诸位先把目录文件建起来,然后我在给出文件内容
这里的目录建好之后还需要设置一下,让idea识别目录作用,选择File-Project Structure
设置完成后ok
三、配置文件内容
pom.xml
<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"><span style="color: #0000ff"><</span><span style="color: #800000">modelVersion</span><span style="color: #0000ff">></span>4.0.0<span style="color: #0000ff"></</span><span style="color: #800000">modelVersion</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>com.chatRobot<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>ChatRobot<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">packaging</span><span style="color: #0000ff">></span>war<span style="color: #0000ff"></</span><span style="color: #800000">packaging</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>1.0-SNAPSHOT<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">name</span><span style="color: #0000ff">></span>ChatRobot Maven Webapp<span style="color: #0000ff"></</span><span style="color: #800000">name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">url</span><span style="color: #0000ff">></span>http://maven.apache.org<span style="color: #0000ff"></</span><span style="color: #800000">url</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">properties</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 设置项目编码编码 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">project.build.sourceEncoding</span><span style="color: #0000ff">></span>UTF-8<span style="color: #0000ff"></</span><span style="color: #800000">project.build.sourceEncoding</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">project.reporting.outputEncoding</span><span style="color: #0000ff">></span>UTF-8<span style="color: #0000ff"></</span><span style="color: #800000">project.reporting.outputEncoding</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> spring版本号 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">spring.version</span><span style="color: #0000ff">></span>4.3.5.RELEASE<span style="color: #0000ff"></</span><span style="color: #800000">spring.version</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> mybatis版本号 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">mybatis.version</span><span style="color: #0000ff">></span>3.4.1<span style="color: #0000ff"></</span><span style="color: #800000">mybatis.version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">properties</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependencies</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> java ee </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>javax<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>javaee-api<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>7.0<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 单元测试 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>junit<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>junit<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>4.12<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 实现slf4j接口并整合 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>ch.qos.logback<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>logback-classic<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>1.2.2<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> JSON </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>com.fasterxml.jackson.core<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>jackson-databind<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>2.8.7<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 数据库 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>mysql<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>mysql-connector-java<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>5.1.41<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">scope</span><span style="color: #0000ff">></span>runtime<span style="color: #0000ff"></</span><span style="color: #800000">scope</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 数据库连接池 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>com.mchange<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>c3p0<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>0.9.5.2<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> MyBatis </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.mybatis<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>mybatis<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${mybatis.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> mybatis/spring整合包 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.mybatis<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>mybatis-spring<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>1.3.1<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> Spring </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-core<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-beans<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-context<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-jdbc<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-tx<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-web<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-webmvc<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.springframework<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>spring-test<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">version</span><span style="color: #0000ff">></span>${spring.version}<span style="color: #0000ff"></</span><span style="color: #800000">version</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependency</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">dependencies</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">build</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">finalName</span><span style="color: #0000ff">></span>ChatRobot<span style="color: #0000ff"></</span><span style="color: #800000">finalName</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">plugins</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">plugin</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span>org.apache.maven.plugins<span style="color: #0000ff"></</span><span style="color: #800000">groupId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span>maven-compiler-plugin<span style="color: #0000ff"></</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">configuration</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 设置JDK版本 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">source</span><span style="color: #0000ff">></span>1.8<span style="color: #0000ff"></</span><span style="color: #800000">source</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">target</span><span style="color: #0000ff">></span>1.8<span style="color: #0000ff"></</span><span style="color: #800000">target</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">configuration</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">plugin</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">plugins</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">build</span><span style="color: #0000ff">></span>
</project>
注意右下角更新pom
logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="STDOUT"/> </root> </configuration>
这里可以控制输出格式和内容,有兴趣的可以自己设置
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver #数据库地址 jdbc.url=jdbc:mysql://xxxxxxxxx:3306/ChatRobot?useUnicode=true&characterEncoding=utf8 #用户名 jdbc.username=xxxx #密码 jdbc.password=xxxxx #最大连接数 c3p0.maxPoolSize=30 #最小连接数 c3p0.minPoolSize=10 #关闭连接后不自动commit c3p0.autoCommitOnClose=false #获取连接超时时间 c3p0.checkoutTimeout=10000 #当获取连接失败重试次数 c3p0.acquireRetryAttempts=2
spring-mybatis.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" 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"><span style="color: #008000"><!--</span><span style="color: #008000"> 扫描service包下所有使用注解的类型 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">context:component-scan </span><span style="color: #ff0000">base-package</span><span style="color: #0000ff">="com.chatRobot.service"</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置数据库相关参数properties的属性:${url} </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">context:property-placeholder </span><span style="color: #ff0000">location</span><span style="color: #0000ff">="classpath:jdbc.properties"</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 数据库连接池 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000"> class</span><span style="color: #0000ff">="com.mchange.v2.c3p0.ComboPooledDataSource"</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="driverClass"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${jdbc.driver}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbcUrl"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${jdbc.url}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="user"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${jdbc.username}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="password"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${jdbc.password}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="maxPoolSize"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${c3p0.maxPoolSize}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="minPoolSize"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${c3p0.minPoolSize}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="autoCommitOnClose"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${c3p0.autoCommitOnClose}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="checkoutTimeout"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${c3p0.checkoutTimeout}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="acquireRetryAttempts"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${c3p0.acquireRetryAttempts}"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置SqlSessionFactory对象 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="sqlSessionFactory"</span><span style="color: #ff0000"> class</span><span style="color: #0000ff">="org.mybatis.spring.SqlSessionFactoryBean"</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 注入数据库连接池 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000"> ref</span><span style="color: #0000ff">="dataSource"</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 扫描model包 使用别名 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="typeAliasesPackage"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="com.chatRobot.model"</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 扫描sql配置文件:mapper需要的xml文件 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="mapperLocations"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="classpath:mapper/*.xml"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="org.mybatis.spring.mapper.MapperScannerConfigurer"</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 注入sqlSessionFactory </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sqlSessionFactoryBeanName"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="sqlSessionFactory"</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 给出需要扫描Dao接口包 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="basePackage"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="com.chatRobot.dao"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置事务管理器 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #ff0000"> class</span><span style="color: #0000ff">="org.springframework.jdbc.datasource.DataSourceTransactionManager"</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 注入数据库连接池 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000"> ref</span><span style="color: #0000ff">="dataSource"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置基于注解的声明式事务 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">tx:annotation-driven </span><span style="color: #ff0000">transaction-manager</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #0000ff">/></span>
</beans>
spring-mvc.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" 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-3.0.xsd"><span style="color: #008000"><!--</span><span style="color: #008000"> 扫描web相关的bean </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">context:component-scan </span><span style="color: #ff0000">base-package</span><span style="color: #0000ff">="com.chatRobot.controller"</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 开启SpringMVC注解模式 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">mvc:annotation-driven</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 静态资源默认servlet配置 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">mvc:default-servlet-handler</span><span style="color: #0000ff">/></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置jsp 显示ViewResolver </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="org.springframework.web.servlet.view.InternalResourceViewResolver"</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="viewClass"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="org.springframework.web.servlet.view.JstlView"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="prefix"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="/WEB-INF/views/"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="suffix"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">=".jsp"</span><span style="color: #0000ff">/></span> <span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span>
</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"><span style="color: #0000ff"><</span><span style="color: #800000">display-name</span><span style="color: #0000ff">></span>ChatRobot<span style="color: #0000ff"></</span><span style="color: #800000">display-name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">description</span><span style="color: #0000ff">></span>ChatRobot_Alpha_0.0.1<span style="color: #0000ff"></</span><span style="color: #800000">description</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 编码过滤器 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">filter</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span>encodingFilter<span style="color: #0000ff"></</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">></span>org.springframework.web.filter.CharacterEncodingFilter<span style="color: #0000ff"></</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span>encoding<span style="color: #0000ff"></</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span>UTF-8<span style="color: #0000ff"></</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">filter</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span>encodingFilter<span style="color: #0000ff"></</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span>/*<span style="color: #0000ff"></</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置DispatcherServlet </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">servlet</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span>SpringMVC<span style="color: #0000ff"></</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">></span>org.springframework.web.servlet.DispatcherServlet<span style="color: #0000ff"></</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 配置springMVC需要加载的配置文件</span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span>contextConfigLocation<span style="color: #0000ff"></</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span>classpath:spring-*.xml<span style="color: #0000ff"></</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">></span>1<span style="color: #0000ff"></</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">async-supported</span><span style="color: #0000ff">></span>true<span style="color: #0000ff"></</span><span style="color: #800000">async-supported</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">servlet</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span>SpringMVC<span style="color: #0000ff"></</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span> <span style="color: #008000"><!--</span><span style="color: #008000"> 匹配所有请求,此处也可以配置成 *.do 形式 </span><span style="color: #008000">--></span> <span style="color: #0000ff"><</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span>/<span style="color: #0000ff"></</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">></span> <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>index.html<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span> <span style="color: #0000ff"></</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">></span>
</web-app>
到这里基本上环境就搭建完成了,下面开始测试
四、测试
先导入一份数据库测试文件
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `email` varchar(255) NOT NULL COMMENT '用户邮箱', `password` varchar(255) NOT NULL COMMENT '用户密码', `username` varchar(255) NOT NULL COMMENT '用户昵称', `role` varchar(255) NOT NULL COMMENT '用户身份', `status` int(1) NOT NULL COMMENT '用户状态', `regTime` datetime NOT NULL COMMENT '注册时间', `regIp` varchar(255) NOT NULL COMMENT '注册IP', PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; INSERT INTO `user` VALUES ('1', 'xxx', 'xxxxx', 'xxxxx', 'root', '0', '2017-03-28 09:40:31', '127.0.0.1'); SET FOREIGN_KEY_CHECKS=1;
接下来配置类
UserController
package com.chatRobot.controller;
import javax.servlet.http.HttpServletRequest;
import com.chatRobot.model.User;
import com.chatRobot.service.IUserService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
</span><span style="color: #0000ff">private</span><span style="color: #000000"> IUserService userService;
@RequestMapping(</span>"/showUser.do"<span style="color: #000000">)
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> selectUser(HttpServletRequest request, HttpServletResponse response) <span style="color: #0000ff">throws</span><span style="color: #000000"> IOException {
request.setCharacterEncoding(</span>"UTF-8"<span style="color: #000000">);
response.setCharacterEncoding(</span>"UTF-8"<span style="color: #000000">);
</span><span style="color: #0000ff">long</span> userId = Long.parseLong(request.getParameter("id"<span style="color: #000000">));
User user </span>= <span style="color: #0000ff">this</span><span style="color: #000000">.userService.selectUser(userId);
ObjectMapper mapper </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> ObjectMapper();
response.getWriter().write(mapper.writeValueAsString(user));
response.getWriter().close();
}
}
IUserDao
package com.chatRobot.dao;
import com.chatRobot.model.User;
public interface IUserDao {
User selectUser(</span><span style="color: #0000ff">long</span><span style="color: #000000"> id);
}
User
package com.chatRobot.model;
import java.util.Date;
public class User {
</span><span style="color: #0000ff">private</span> <span style="color: #0000ff">long</span><span style="color: #000000"> id;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> String email;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> String password;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> String username;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> String role;
</span><span style="color: #0000ff">private</span> <span style="color: #0000ff">int</span><span style="color: #000000"> status;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> Date regTime;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> String regIp;
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">long</span><span style="color: #000000"> getId() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> id;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setId(<span style="color: #0000ff">int</span><span style="color: #000000"> id) {
</span><span style="color: #0000ff">this</span>.id =<span style="color: #000000"> id;
}
</span><span style="color: #0000ff">public</span><span style="color: #000000"> String getEmail() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> email;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setEmail(String email) {
</span><span style="color: #0000ff">this</span>.email =<span style="color: #000000"> email;
}
</span><span style="color: #0000ff">public</span><span style="color: #000000"> String getPassword() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> password;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setPassword(String password) {
</span><span style="color: #0000ff">this</span>.password =<span style="color: #000000"> password;
}
</span><span style="color: #0000ff">public</span><span style="color: #000000"> String getUsername() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> username;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setUsername(String username) {
</span><span style="color: #0000ff">this</span>.username =<span style="color: #000000"> username;
}
</span><span style="color: #0000ff">public</span><span style="color: #000000"> String getRole() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> role;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setRole(String role) {
</span><span style="color: #0000ff">this</span>.role =<span style="color: #000000"> role;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span><span style="color: #000000"> getStatus() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> status;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setStatus(<span style="color: #0000ff">int</span><span style="color: #000000"> status) {
</span><span style="color: #0000ff">this</span>.status =<span style="color: #000000"> status;
}
</span><span style="color: #0000ff">public</span><span style="color: #000000"> Date getRegTime() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> regTime;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setRegTime(Date regTime) {
</span><span style="color: #0000ff">this</span>.regTime =<span style="color: #000000"> regTime;
}
</span><span style="color: #0000ff">public</span><span style="color: #000000"> String getRegIp() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> regIp;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setRegIp(String regIp) {
</span><span style="color: #0000ff">this</span>.regIp =<span style="color: #000000"> regIp;
}
}
IUserService
package com.chatRobot.service;
import com.chatRobot.model.User;
public interface IUserService {
</span><span style="color: #0000ff">public</span> User selectUser(<span style="color: #0000ff">long</span><span style="color: #000000"> userId);
}
UserServiceImpl
package com.chatRobot.service.impl;
import com.chatRobot.dao.IUserDao;
import com.chatRobot.model.User;
import com.chatRobot.service.IUserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service(“userService”)
public class UserServiceImpl implements IUserService {
@Resource
</span><span style="color: #0000ff">private</span><span style="color: #000000"> IUserDao userDao;
</span><span style="color: #0000ff">public</span> User selectUser(<span style="color: #0000ff">long</span><span style="color: #000000"> userId) {
</span><span style="color: #0000ff">return</span> <span style="color: #0000ff">this</span><span style="color: #000000">.userDao.selectUser(userId);
}
}
UserDao.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!– 设置为IUserDao接口方法提供sql语句配置 –>
<mapper namespace=“com.chatRobot.dao.IUserDao”>
<span style="color: #0000ff"><</span><span style="color: #800000">select </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="selectUser"</span><span style="color: #ff0000"> resultType</span><span style="color: #0000ff">="User"</span><span style="color: #ff0000"> parameterType</span><span style="color: #0000ff">="long"</span><span style="color: #0000ff">></span><span style="color: #000000">
SELECT * FROM user WHERE id = #{id}
</span><span style="color: #0000ff"></</span><span style="color: #800000">select</span><span style="color: #0000ff">></span>
</mapper>
然后新建个测试类,来测试mybatis
IUserDaoTest
package com.chatRobot.dao;
import com.chatRobot.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;
// 加载spring配置文件
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({“classpath:spring-mybatis.xml”})
public class IUserDaoTest {
@Autowired
</span><span style="color: #0000ff">private</span><span style="color: #000000"> IUserDao dao;
@Test
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> testSelectUser() <span style="color: #0000ff">throws</span><span style="color: #000000"> Exception {
</span><span style="color: #0000ff">long</span> id = 1<span style="color: #000000">;
User user </span>=<span style="color: #000000"> dao.selectUser(id);
System.out.println(user.getUsername());
}
}
运行后结果应该是会在控制台输出id为1的用户名,没成功的话就找BUG去吧...
继续新建个页面来测试springmvc和mybatis
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> </head> <script> function selectUser() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("test").innerHTML = xmlhttp.responseText; } } xmlhttp.open("POST", "user/showUser.do", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("id=1"); } </script> <body> <p id="test">Hello World!</p> <button type="button" onclick="selectUser()">onclick test</button> </body> </html>
新建完成后配置项目运行环境,点击Run-Edit Configurations...
点击加号新建运行环境,选择Tomcat Server-Local
选中新建好的服务器,右边选择Deployment,点击加号-Atifact...
选择第二项
然后在右边Application context配置你的项目名
最后运行项目,在打开的页面中点击按钮测试,成功的话会在页面上显示id为1的用户信息