.1启动idea,按照下图写好项目结构
二,具体实现如下
pom.xml文件
4.0.0
com.zhongruan
ssm123
1.0-SNAPSHOT
war
ssm123 Maven Webapp
http://www.example.com
UTF-8
1.8
1.8
5.0.2.RELEASE
3.2.6
1.7.7
1.2.17
0.9.5.2
1.1.2
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.30
commons-dbcp
commons-dbcp
1.2.2
jstl
jstl
1.2
log4j
log4j
${log4j.version}
com.mchange
c3p0
${c3p0.version}
taglibs
standard
${taglibs.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
javax.servlet
javax.servlet-api
3.1.0
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.3.1
provided
ssm123
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
1.创建一个User.java实体类以及数据库
package com.drzhang.bean;
public class UserInfo {
private int id;
private String username;
private String password;
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;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public UserInfo(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public UserInfo() {
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
2.创建dao层,创建一个IUserDao类
public interface IUserDao {
public ListfindAll();
}
3.创建service层,创建impl包,在包下创建IUserServicempl类
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
IUserDao userDao;
@Override
public List findAll() {
return userDao.findAll();
}
}
在service下创建IUserServicelei
public interface IUserService {
public List findAll();
}
4.创建controller层的实现类UserConler
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/findAll.do")
public ModelAndView findAll(){
List userinfos=userService.findAll();
ModelAndView mv=new ModelAndView();
mv.addObject("ui",userinfos);
mv.setViewName("allUser");
return mv;
}
}
5.配置各种配置文件
UserMapper.xml,关于数据库的增删改查语句都写在这里
insert into user(id,name,sex,age) values(#{id},#{name},#{sex},#{age})
delete from user where id=#{id}
update user set name=#{name},sex=#{sex},age=#{age} where id=#{id}
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/你的数据库名字?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=
log4j.properties
### set log levels ###
log4j.rootLogger = debug , stdout , D , E
### 输出到控制台 ###
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{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
spring-mybatis.xml,在这里我把spring和mybatis整合在了一起
spring-mvc.xml
最后一个是web.xml的配置
Archetype Created Web Application
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:spring-mybatis.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
true
springmvc
/
index.jsp
到此,配置文件就写完了,接下来写一个测试类,来看下是否能正常运行
UserDaoTest.java
package com.drzhang.dao;
import com.drzhang.bean.User;
import com.drzhang.service.UserService;
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;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring-mybatis.xml"})
public class UserDaoTest {
@Autowired
private UserService userService;
@Test
public void testUser(){
User user = userService.findUserById(1);
System.out.println(user);
}
}
如果出现下面的结果,就说明我们前面的配置都是成功的了!
最后就是controller层和jsp文件了
UserController.java
package com.drzhang.controller;
import com.drzhang.bean.User;
import com.drzhang.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.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 跳转到添加用户界面
* @return
*/
@RequestMapping("toAddUser")
public String toAddUser(){
return "addUser";
}
/**
* 添加用户并重定向
* @param model
* @param user
* @return
*/
@RequestMapping("addUser")
public String addUser(Model model,User user){
if (user != null){
userService.saveUser(user);
}
return "redirect:/user/getAllUser";
}
/**
* 查询全部用户
* @param model
* @return
*/
@RequestMapping("getAllUser")
public String getAllUser(Model model){
List user = userService.findAll();
model.addAttribute("userList",user);
return "allUser";
}
/**
* 删除用户
* @param model
* @param id
* @return
*/
@RequestMapping("delUser")
public String removeUser(Model model,Integer id){
model.addAttribute("user",userService.deleteUser(id));
//userService.deleteUser(id);
return "redirect:/user/getAllUser";
}
/**
* 跳转到更新用户页面
*/
@RequestMapping("toUpdate")
public String toUpdate(@RequestParam(value = "id")Integer id,Model model){
model.addAttribute("user",userService.findUserById(id));
return "updateUser";
}
/**
* 更新用户
* @param
* @return
*/
@RequestMapping(value = "updateUser",method = RequestMethod.POST)
public String updateUser(User user){
userService.updateUser(user);
return "redirect:/user/getAllUser";
}
}
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/6/22
Time: 17:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
pageContext.setAttribute("path",request.getContextPath());
%>
Title
最后运行即可