1.New一个maven工程
4.0.0
test.java.zxf
SSMDemo
war
0.0.1-SNAPSHOT
SSMDemo Maven Webapp
http://maven.apache.org
4.3.8.RELEASE
org.springframework
spring-core
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.aspectj
aspectjrt
1.8.0
org.aspectj
aspectjweaver
1.8.0
org.mybatis
mybatis
3.3.0
mysql
mysql-connector-java
5.1.31
com.alibaba
druid
1.0.20
org.mybatis
mybatis-spring
1.2.3
javax.servlet
jstl
1.2
log4j
log4j
1.2.17
org.slf4j
slf4j-api
1.7.21
junit
junit
3.8.1
test
SSMDemo
Archetype Created Web Application
contextConfigLocation
classpath:spring-mybatis.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
true
SpringMVC
/
/index.jsp
classpath:jdbc.properties
classpath:log4j.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/testdb
jdbc.username=root
jdbc.password=root
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
package com.java.zxf.domain;
public class User {
private String id;
private String userName;
private String userGender;
private String userBirthday;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id == null ? null : id.trim();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public String getUserGender() {
return userGender;
}
public void setUserGender(String userGender) {
this.userGender = userGender == null ? null : userGender.trim();
}
public String getUserBirthday() {
return userBirthday;
}
public void setUserBirthday(String userBirthday) {
this.userBirthday = userBirthday == null ? null : userBirthday.trim();
}
}
package com.java.zxf.dao;
import com.java.zxf.domain.User;
public interface UserDao {
int deleteByPrimaryKey(String id);
int insert(User record);
int insertSelective(User record);
User selectByPrimaryKey(String id);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
}
id, user_name, user_gender, user_birthday
delete from user
where id = #{id,jdbcType=VARCHAR}
insert into user (id, user_name, user_gender,
user_birthday)
values (#{id,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{userGender,jdbcType=VARCHAR},
#{userBirthday,jdbcType=VARCHAR})
insert into user
id,
user_name,
user_gender,
user_birthday,
#{id,jdbcType=VARCHAR},
#{userName,jdbcType=VARCHAR},
#{userGender,jdbcType=VARCHAR},
#{userBirthday,jdbcType=VARCHAR},
update user
user_name = #{userName,jdbcType=VARCHAR},
user_gender = #{userGender,jdbcType=VARCHAR},
user_birthday = #{userBirthday,jdbcType=VARCHAR},
where id = #{id,jdbcType=VARCHAR}
update user
set user_name = #{userName,jdbcType=VARCHAR},
user_gender = #{userGender,jdbcType=VARCHAR},
user_birthday = #{userBirthday,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
package com.java.zxf.service;
import com.java.zxf.domain.User;
public interface UserService {
/**
* 根据ID获取用户信息
*/
public User getUserById(String id);
}
package com.java.zxf.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.java.zxf.dao.UserDao;
import com.java.zxf.domain.User;
import com.java.zxf.service.UserService;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public User getUserById(String id) {
return userDao.selectByPrimaryKey(id);
}
}
package com.java.zxf.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.java.zxf.domain.User;
import com.java.zxf.service.UserService;
/**
* 用户控制器
*/
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user", method = RequestMethod.GET)
public ModelAndView login(@RequestParam(value="id",required=true) String id) {
User user = userService.getUserById(id);
ModelAndView mav = new ModelAndView();
if (user == null) {
//跳转至失败页
mav.setViewName("fail");
return mav;
} else {
//跳转至成功页
mav.addObject("id", user.getId());
mav.addObject("name", user.getUserName());
mav.addObject("gender", user.getUserGender());
mav.addObject("birthday", user.getUserBirthday());
mav.setViewName("success");
return mav;
}
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
失败页
根据ID查询用户信息失败
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
成功页
根据ID查询用户信息成功
用户信息如下:
用户ID:${id}
用户名:${name}
用户性别:${gender}
用户生日:${birthday}