1.新建一个Maven工程
打开IDEA-->File-->New-->Project-->选择Maven-->勾选Create from archetype-->选择maven-archetype-webapp-->Next
填写GroupId(组织名称),和 ArtifactId(项目名)-->Next
选择使用的Maven的安装目录及settings.xml文件-->Next
确定项目名及项目路径-->点击Finish
等待一会项目构建完成后,目录结构如下:
2.新建目录结构,并设置目录属性
新建出如下目录结构:
添加目录属性:
1)右键src/main/java-->Mark Directory as-->Sources Root。 此目录下写java代码
2)右键src/main/resources-->Mark Directory as-->Resources Root。 此目录下放资源配置文件
3)右键src/test/java-->Mark Directory as-->Test Sources Root。 此目录下写java测试代码
3.在src/main/java目录下新建包
1) 新建com.jipson.pojo包:实体类
2) 新建com.jipson.mapper包: mapper接口
3) 新建com.jipson.service包: 业务接口
4) 新建 com.jipson.controller包: 控制类
4.在src/main/resources下新建目录、文件
1)新建applicationContext.xml文件:配置spring、mybatis
2)新建springmvc.xml文件:配置springMVC
3)新建db.properties文件:数据库配置
4)新建log4j.properties文件:日志配置
5)新建mapper目录,右键sources-->New-->Directory-->mapper-->OK: 写Mapper接口的配置
5. 数据库设计
这里使用MySQL数据库
1)新建数据库:ssm
create DATABASE ssm;
2)新建数据表:user
CREATE TABLE user(
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO user VALUES(1,'小明');
INSERT INTO user VALUES(2,'小红');
INSERT INTO user VALUES(3,'小美');
6.配置pom.xml
配置spring、mybatis版本号
UTF-8
UTF-8
1.7
1.7
4.3.5.RELEASE
3.4.1
配置依赖
junit
junit
4.12
test
mysql
mysql-connector-java
5.1.41
runtime
com.mchange
c3p0
0.9.5.2
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.3.1
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-test
${spring.version}
com.fasterxml.jackson.core
jackson-core
2.7.3
com.fasterxml.jackson.core
jackson-databind
2.7.3
com.fasterxml.jackson.core
jackson-annotations
2.7.3
7.编写配置文件
1)web.xml
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
springmvc
/
encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encoding
/*
2) applicationContext.xml
3) springmvc.xml
4) db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/ssm
jdbc.username=root
jdbc.password=123
#最大连接数
c3p0.maxPoolSize=30
#最小连接数
c3p0.minPoolSize=10
#关闭连接后不自动commit
c3p0.autoCommitOnClose=false
#获取连接超时时间
c3p0.checkoutTimeout=10000
#当获取连接失败重试次数
c3p0.acquireRetryAttempts=2
注意修改数据库信息,例如:username、password的值。
5) log4j.properties
log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%m %n
8.编写java代码
1)com.jipson.pojo包下新建类:User.java
package com.jipson.pojo;
public class User {
private int id;
private String username;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
'}';
}
}
2)com.jispon.mapper包下新建接口:UserMapper.java
package com.jipson.mapper;
import com.jipson.pojo.User;
import java.util.List;
public interface UserMapper {
/**
* 查询所有用户
* @return
*/
List selAllUser();
}
resource/mapper目录下新建接口的配置文件:UserMapper.xml
UserMapper.xml配置内容如下:
为验证代码/配置是否正确,建议写完一个Mapper进行一次单元测试
编写单元测试类:
在src/test/java下新建类: UserTest.java
UserTest.java代码如下:
package com.jipson.test;
import com.jipson.mapper.UserMapper;
import com.jipson.pojo.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;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml"})
public class TestUser {
@Autowired
private UserMapper userMapper;
@Test
public void testSelAllUser(){
List users = userMapper.selAllUser();
System.out.println(users);
}
}
运行单元测试,点击@Test方法左侧的运行图标(三角形),点击Run 'testSelAllUser()' 运行
运行成功截图如下:
如果运行不成功,请检查前面的配置及相关代码。
3)编写service业务
新建UserService接口:右键com.jipson.service包-->New-->Java Class
UserService.java代码如下:
package com.jipson.service;
import com.jipson.pojo.User;
import java.util.List;
public interface UserService {
List findAllUser();
}
编写UserService接口实现类
右键com.jipson.service包-->New-->Java Class-->impl.UserServiceImpl
UserServiceImpl.java代码如下:
package com.jipson.service.impl;
import com.jipson.mapper.UserMapper;
import com.jipson.pojo.User;
import com.jipson.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List findAllUser() {
return userMapper.selAllUser();
}
}
4)编写控制类
右键com.jipson.controller包-->New-->Java Class-->UserController-->OK
package com.jipson.controller;
import com.jipson.pojo.User;
import com.jipson.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class UserController {
@Autowired
private UserService userService;
/**
* 返回json数据
* @return
*/
@RequestMapping("/find")
@ResponseBody
public List findUser(){
return userService.findAllUser();
}
/**
* 返回jsp页面
* @param model
* @return
*/
@RequestMapping("/allUser")
public String findUser1(Model model){
List user = userService.findAllUser();
model.addAttribute("user", user);
return "index.jsp";
}
}
5. 编写页面index.jsp
src/main/webapp/index.jsp内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
Hello World!
user:${requestScope.user }
9.运行测试
1)运行配置,详细可参考:IDEA设置tomcat及部署web项目
点击Run-->Edit Configurations-->点击弹窗左上角"+"-->Tomcat Server-->Local-->修改服务名为ssmdemo(名称随意写)-->Server-->检查Application server是否为本地的Tomcat-->选择运行后访问的浏览器
点击Deployment-->点击右侧的“+”-->选择Artifact-->选择ssmdeml:war exploded-->在Application context中填写URL访问路径-->OK
查看服务器名为刚才配置的服务器名称ssmdemo, 点击右侧的运行图标(三角形)运行。
浏览器访问:
1) http://localhost:8080/ssmdemo/find
可以看到服务器直接返回json数据到浏览器
2) http://localhost:8080/ssmdemo/allUser
可看到服务器返回了jsp的内容,并可以通过${requestScope.user }取到服务器的数据。
项目地址: https://github.com/jipsonliang/ssm
完成!enjoy it!