ssm项目整合(Spring+SpringMVC+Mybatis)
该项目实现的功能有
1.用户登录
2.新增用户信息
3.返回所有用户信息
4.更新用户信息
5删除用户信息
项目源码下载
项目结构:
具体搭建步骤:
创建数据库和对应的表结构
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `adminuser`
-- ----------------------------
DROP TABLE IF EXISTS `adminuser`;
CREATE TABLE `adminuser` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of adminuser
-- ----------------------------
INSERT INTO `adminuser` VALUES ('1', '小落', 'qwe');
1.新建一个web项目 在WebRoot/WEB-INF/lib下导入必须的jar包
aopalliance-1.0.jar
aspectjweaver-1.7.1.jar
commons-fileupload-1.2.2.jar
commons-logging-1.1.1.jar
druid-0.2.9.jar
jstl-1.2.jar
junit-4.11.jar
mybatis-3.1.1.jar
mybatis-spring-1.1.1.jar
mysql-connector-java-5.1.21.jar
servlet-api-3.0-alpha-1.jar
spring-aop-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
spring-jdbc-3.1.1.RELEASE.jar
spring-test-3.2.0.RELEASE.jar
spring-tx-3.1.1.RELEASE.jar
spring-web-3.2.0.RELEASE.jar
spring-webmvc-3.2.0.RELEASE.jar
db.properties
#hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#driverClassName=com.mysql.jdbc.Driver
#来验证数据库连接的有效性
validationQuery=SELECT 1
jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
jdbc_username=root
jdbc_password=root
3.创建包结构
com.jsx.controller
com.jsx.dao
com.jsx.mapping
com.jsx.model
com.jsx.service
com.jsx.service.impl
4.创建spring.xml配置文件
spring.xml
spring-mybatis.xml
com.jsx.service.*
spring-mvc.xml
web.xml
contextConfigLocation
classpath:spring.xml;classpath:spring-mybatis.xml
字符集过滤器
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
字符集编码
encoding
UTF-8
encodingFilter
/*
spring监听器
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
spring mvc servlet
springMvc
org.springframework.web.servlet.DispatcherServlet
spring mvc 配置文件
contextConfigLocation
classpath:spring-mvc.xml
1
springMvc
*.do
15
index.jsp
User.java
package com.jsx.model;
public class User {
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 == null ? null : username.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
}
User.xml
id, username, password
delete from adminuser
where id = #{id}
insert into adminuser (username, password)
values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR})
insert into adminuser
username,
password,
#{username,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR},
update adminuser
username = #{username,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
where id = #{id}
update adminuser
set username = #{username,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR}
where id = #{id}
UserDao.java
package com.jsx.dao;
import java.util.List;
import com.jsx.model.User;
public interface UserDao {
int insert(User user);
int insertSelective(User user);
int deleteByPrimaryKey(int id);
int updateByPrimaryKeySelective(User user);
int updateByPrimaryKey(User user);
User selectByPrimaryKey(int id);
List getAll();
User selectByUsernameAndPassword(User user);
}
UserService.java
package com.jsx.service;
import java.util.List;
import com.jsx.model.User;
public interface UserService {
String addInfo(User addInfo);
List getAll();
String delete(int id);
User findById(int id);
String update(User addInfo);
User login(User user);
}
UserServiceImpl.java
package com.jsx.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jsx.dao.UserDao;
import com.jsx.model.User;
import com.jsx.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService{
@Autowired
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
//表示一个方法声明的目的是覆盖父类方法声明。如果一个方法是注释,该注释类型但不重写基类方法,编译器必须生成一个错误消息。
@Override
public String addInfo(User addInfo) {
if (userDao.insertSelective(addInfo) == 1) {
return "添加成功";
}
return "添加失败";
}
@Override
public List getAll() {
return userDao.getAll();
}
@Override
public String delete(int id) {
if (userDao.deleteByPrimaryKey(id) == 1) {
return "删除成功";
}
return "删除失败";
}
@Override
public User findById(int id) {
return userDao.selectByPrimaryKey(id);
}
@Override
public String update(User addInfo) {
if (userDao.updateByPrimaryKeySelective(addInfo) == 1) {
return "更新成功";
}
return "更新失败";
}
@Override
public User login(User user) {
return userDao.selectByUsernameAndPassword(user);
}
}
UserController.java
package com.jsx.controller;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.jsx.model.User;
import com.jsx.service.UserService;
@Controller
public class UserController {
@Autowired
private UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
@SuppressWarnings("finally")
@RequestMapping("addInfo")
public String add(User user,HttpServletRequest request){
try {
// user.setId(UUID.randomUUID().toString());
System.out.println(user.getId() + ":::::" + user.getUsername() + ":::::" + user.getPassword());
String str = userService.addInfo(user);
System.out.println(str);
request.setAttribute("InfoMessage", str);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("InfoMessage", "添加信息失败!具体异常信息:" + e.getMessage());
} finally {
return "result";
}
}
@RequestMapping("getAll")
public String getAddInfoAll(HttpServletRequest request){
try {
List list = userService.getAll();
System.out.println("------User_list-----"+list.size());
request.setAttribute("addLists", list);
return "listAll";
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("InfoMessage", "信息载入失败!具体异常信息:" + e.getMessage());
return "result";
}
}
@SuppressWarnings("finally")
@RequestMapping("del")
public String del(int id,HttpServletRequest request){
try {
String str = userService.delete(id);
request.setAttribute("InfoMessage", str);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("InfoMessage", "删除信息失败!具体异常信息:" + e.getMessage());
} finally {
return "result";
}
}
@RequestMapping("modify")
public String modify(int id,HttpServletRequest request){
try {
User user = userService.findById(id);
request.setAttribute("add", user);
return "modify";
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("InfoMessage", "信息载入失败!具体异常信息:" + e.getMessage());
return "result";
}
}
@SuppressWarnings("finally")
@RequestMapping("update")
public String update(User user,HttpServletRequest request){
try {
String str = userService.update(user);
request.setAttribute("InfoMessage", str);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("InfoMessage", "更新信息失败!具体异常信息:" + e.getMessage());
} finally {
return "result";
}
}
@RequestMapping("login")
public String login(User user,HttpServletRequest request){
try {
System.out.println("------login--qian----"+user.getUsername()+","+user.getPassword()+".");
User loginUser = null;
loginUser=userService.login(user);
if(loginUser!=null){
request.setAttribute("loginUser", loginUser.getUsername());
return "index";
}else{
request.setAttribute("loginUser", "登录失败");
return "index";
}
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("InfoMessage", "登录失败!具体异常信息:" + e.getMessage());
return "result";
}
}
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
添加数据
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
My JSP 'index.jsp' starting page
---${loginUser}---
新增数据
查看全部数据
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
所有用户所有信息
所有用户所有信息
编号
用户名
密码
操作
${list.id}
${list.username}
${list.password}
更新 删除
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
用户登录
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
修改数据
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
结果页
${InfoMessage}
返回首页