经过将近一个月的摸索,终于算是勉强完成了关于增删改查的SSM项目。

  github源码地址:https://github.com/123456abcdefg/Login

  好了,话不多说,写一下具体代码。

  

 实现代码:

1.controller:

登录:

package com.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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.servlet.ModelAndView;
import com.entity.user;
import com.service.userService; @Controller
@RequestMapping("/admin") public class userController {
// 注入UserService
@Autowired
private userService userService; @RequestMapping("/index")
public String index(){
return "index";
} // 登录
@RequestMapping("/login")
public String login(HttpServletRequest request,String username,String password){
user user =userService.getUser(username,password);
ModelAndView modelandview = new ModelAndView();
modelandview.addObject(user);
if(user.getIdent().equals("1"))
return "redirect:/admin/user/userlist.action";
else
return "redirect:/admin/index.action";
} @RequestMapping("/error")
public String error(){
return "error";
}
}
userlistController:
package com.controller;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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.servlet.ModelAndView;
import com.entity.user;
import com.service.userService; @Controller
@RequestMapping("/admin/user") public class userlistController {
// 注入UserService
@Autowired
private userService userService; @RequestMapping("/userlist")
public ModelAndView userlist(HttpServletRequest request,Integer search){
user user = new user();
user.setId(search);
List<user> userlist = userService.findUserList(user);
ModelAndView modelandview = new ModelAndView();
modelandview.addObject("userlist",userlist);
modelandview.setViewName("login");
return modelandview;
} //新增页面
@RequestMapping("/add")
public String add(HttpServletRequest request){
return "add_do";
} //增加用户
@RequestMapping("/add_do")
public String add_do(HttpServletRequest request,
String username,String password,String ident){
user user = new user();
user.setUsername(username);
user.setPassword(password);
user.setIdent(ident);
userService.addUser(user);
return "forward:userlist.action";
} //删除用户
@RequestMapping("/delete_do")
public String delete_do(HttpServletRequest request,Integer id){
userService.deleteUser(id);
return "forward:userlist.action";
} //修改页面
@RequestMapping("/update")
public ModelAndView update(Integer id){
ModelAndView modelandview = new ModelAndView();
user user=userService.getUserById(id);
modelandview.addObject(user);
modelandview.setViewName("add_do");
return modelandview;
} //修改用户信息
@RequestMapping("/update_do")
public String update_do(HttpServletRequest request,Integer id,String username,String password,String ident){
user user = new user();
user.setId(id);
user.setUsername(username);
user.setPassword(password);
user.setIdent(ident);
userService.updateUser(user);
return "forward:userlist.action";
}
}

2.user:

package com.entity;
import java.util.List; public class user {
private Integer id;
private String username;
private String password;
private String ident; public String getIdent() {
return ident;
}
public void setIdent(String ident) {
this.ident = ident;
}
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
}

3.mapper:

package com.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.entity.user; public interface userMapper {
public user getUser(String username,String password);
public List<user> findUserList(user user);
public void addUser(user user);
public void deleteUser(Integer id);
public user getUserById(Integer id);
public void updateUser(user user);
}

mapper.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" >
<mapper namespace="com.mapper.userMapper">
<resultMap type="com.entity.user" id="userMapper">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="username" property="username" jdbcType="VARCHAR"/>
<result column="password" property="password" jdbcType="VARCHAR"/>
<result column="ident" property="ident" jdbcType="VARCHAR"/>
</resultMap> <select id="getUser" parameterType="com.entity.user" resultType="com.entity.user">
select *
from user
where username=#{0} and password=#{1}
</select> <select id="findUserList" parameterType="com.entity.user" resultType="com.entity.user">
select *
from user
where 1=1 and id like '%${id}%'
</select> <insert id="addUser" parameterType="com.entity.user">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="username != null">
username,
</if>
<if test="password != null">
password,
</if>
<if test="ident != null">
ident,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
#{password,jdbcType=VARCHAR},
</if>
<if test="ident != null">
#{ident,jdbcType=VARCHAR},
</if>
</trim>
</insert> <delete id="deleteUser" parameterType="com.entity.user">
delete
from user
where id=#{id,jdbcType=INTEGER}
</delete> <select id="getUserById" parameterType="com.entity.user" resultType="com.entity.user">
select *
from user
where id=#{id}
</select> <update id="updateUser" parameterType="com.entity.user">
update user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password,jdbcType=VARCHAR},
</if>
<if test="ident != null">
ident = #{ident,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update> </mapper>

4.service:

userService:

package com.service;
import java.util.List;
import com.entity.user; public interface userService {
public user getUser(String username,String password);
public List<user> findUserList(user user);
public void addUser(user user);
public void deleteUser(Integer id);
public user getUserById(Integer id);
public void updateUser(user user);
}

userServiceimp:

package com.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.entity.user;
import com.mapper.userMapper; public class userServiceimp implements userService{
// 注入User
@Autowired
private userMapper usermapper; @Override
public user getUser(String username,String password){
return usermapper.getUser(username,password);
} @Override
public List<user> findUserList(user user){
return usermapper.findUserList(user);
} @Override
public void addUser(user user){
usermapper.addUser(user);
} @Override
public void deleteUser(Integer id){
usermapper.deleteUser(id);
} @Override
public user getUserById(Integer id){
return usermapper.getUserById(id);
} @Override
public void updateUser(user user){
usermapper.updateUser(user);
}
}

剩下的配置文件我就不粘了,大家可以去我github上下载源码查看。

登陆页面:

登陆成功页面: 

    新增 页面:

大致就是这样了,实现了基本的增删改查操作,以后要是写出好的项目也会同样放在github上,欢迎大家下载讨论。

项目就先告一段落了,接下来的任务就是把SSM从头到尾看一遍,彻底搞懂SSM框架具体怎么实现。

增删改查的SSM小项目的更多相关文章

  1. SpringBoot-Vue实现增删改查及分页小DEMO

    前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开 ...

  2. mybatis的增删改查返回值小析(六)

    本文验证了通过mybatis访问数据库时的,增删改查的返回值情况. 直接看代码. 1.service层 /** *@Author: Administrator on 2020/3/12 15:15 * ...

  3. 无框架JavaWeb简单增删改查,纯 jsp小练习

    地址 : 纯本人手码 jsp练习>>>>>

  4. ssm框架(Spring Springmvc Mybatis框架)整合及案例增删改查

    三大框架介绍 ssm框架是由Spring springmvc和Mybatis共同组成的框架.Spring和Springmvc都是spring公司开发的,因此他们之间不需要整合.也可以说是无缝整合.my ...

  5. nodejs+express+mysql实现restful风格的增删改查示例

    首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...

  6. springboot+layui实现PC端用户的增删改查 & 整合mui实现app端的自动登录和用户的上拉加载 & HBuilder打包app并在手机端下载安装

    springboot整合web开发的各个组件在前面已经有详细的介绍,下面是用springboot整合layui实现了基本的增删改查. 同时在学习mui开发app,也就用mui实现了一个简单的自动登录和 ...

  7. 进入全屏 nodejs+express+mysql实现restful风格的增删改查示例

    首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...

  8. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  9. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

随机推荐

  1. 部署crm项目

    准备工作 使用xftp将项目传到linux 将knight 传到linux上 将项目的数据导出 mysqldum -uroot -p --all-database > alldb.dump 在w ...

  2. C#使用读写锁解决多线程并发写入文件时线程同步的问题

    读写锁是以 ReaderWriterLockSlim 对象作为锁管理资源的,不同的 ReaderWriterLockSlim 对象中锁定同一个文件也会被视为不同的锁进行管理,这种差异可能会再次导致文件 ...

  3. 洛谷P1092 虫食算(算竞进阶习题)

    模拟+dfs 这个题就三行,搜索的话我们从右向左,从上到下.. 如果是在1,2行我们就直接枚举0-n所有数,但是到了第三行,最直接的就是填上这一列上前两行的数的和modN,在此基础上判断该填的数有没有 ...

  4. bzoj1559 [JSOI2009]密码

    题目链接:[JSOI2009]密码 我们先看第一问:输出方案数 我们把所有给出来的串丢到AC自动机里面去,然后在建出来的\(trie\)图上跑dp 由于\(n\leq 10\)我们很自然的就想到了状压 ...

  5. 运行os.fork()报AttributeError: module 'os' has no attribute 'fork'

    现象 报错代码 def handle(s, c, db): pid = os.fork() if pid == 0: s.close() do_child(c, db) sys.exit() else ...

  6. centos install redmine (项目管理工具)

    安装环境:Centos.mysql.Ruby.Apache.Redmineyum updateyum -y groupinstall "Development Tools"yum ...

  7. [luogu3246][bzoj4540][HNOI2016]序列【莫队+单调栈】

    题目描述 给定长度为n的序列:a1,a2,...,an,记为a[1:n].类似地,a[l:r](1<=l<=r<=N)是指序列:al,al+1,...,ar-1,ar.若1<= ...

  8. docker_flannel

    目录 一.安装etcd 安装 运行 验证 二.安装和配置 flannel 三. Docker 中使用 flannel 配置 Docker 连接 flannel 容器连接到 flannel 网络 四.f ...

  9. EtherType :以太网类型字段及值

    Ethernet II即DIX 2.0:Xerox与DEC.Intel在1982年制定的以太网标准帧格式.Cisco名称为:ARPA Ethernet II类型以太网帧的最小长度为64字节(6+6+2 ...

  10. 压缩JS,CSS的工具

    目标: 压缩项目中的JS,CSS文件. 方法一:使用uglifyjs uglifycss 压缩JS: 1.安装NODEJS.是一个在服务端运行的JS语言.下载地址https://nodejs.org/ ...