栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

❤️‍Spring全家桶从入门到大神--SpringMVC之SSM整合(用户-增删改查!)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

❤️‍Spring全家桶从入门到大神--SpringMVC之SSM整合(用户-增删改查!)

SSM整合
  • 1、需求
  • 2、环境搭建
  • 3、导入配置类
    • 3.1、MyBatis配置类
    • 3.2、 Spring配置类
    • 3.3、 Spring MVC配置类
    • 3.4、 启动配置类
  • 4、 查询所有
  • 5、 添加
  • 6、删除用户
  • 7、更新数据

1、需求

用户的增删改查

  • SSM:spring mvc 、spring、mybatis
  • view:jsp (非重点)
2、环境搭建
  • 项目名:day15_ssm_ums

  • 数据库:已有数据

# 创建数据库
CREATE DATAbase ssm_db2;
# 使用数据库
USE ssm_db2;
# 1.1 创建用户表
CREATE TABLE `user` (
  `uid` VARCHAR(32) NOT NULL,
  `username` VARCHAR(20) DEFAULT NULL,	#用户名
  `password` VARCHAR(32) DEFAULT NULL,	#密码
  `name` VARCHAR(20) DEFAULT NULL,		#昵称
  `email` VARCHAR(30) DEFAULT NULL,		#电子邮箱
  `telephone` VARCHAR(20) DEFAULT NULL,	#电话
  `birthday` DATE DEFAULT NULL,			#生日
  `sex` VARCHAR(10) DEFAULT NULL,		#性别
  `state` INT(11) DEFAULT 0,			#状态:0=未激活,1=已激活
  `code` VARCHAR(64) DEFAULT NULL,		#激活码
  PRIMARY KEY (`uid`)
) ;
# 1.2 初始化用户默认数据
INSERT INTO `user` VALUES ('u001','jack','1234','杰克','jack@czxy.com','13612345678','2015-11-04','男',0,NULL);
INSERT INTO `user` VALUES ('u002','rose','1234','肉丝','rose@czxy.com','13612345679','2015-11-05','女',0,NULL);
INSERT INTO `user` VALUES ('373eb242933b4f5ca3bd43503c34668b','ccc','ccc','aaa','bbb@store.com','15723689921','2015-11-04','男',0,'9782f3e837ff422b9aee8b6381ccf927bdd9d2ced10d48f4ba4b9f187edf7738'),('3ca76a75e4f64db2bacd0974acc7c897','bb','bb','张三','bbb@store.com','15723689921','1990-02-01','男',0,'1258e96181a9457987928954825189000bae305094a042d6bd9d2d35674684e6'),('62145f6e66ea4f5cbe7b6f6b954917d3','cc','cc','张三','bbb@store.com','15723689921','2015-11-03','男',0,'19f100aa81184c03951c4b840a725b6a98097aa1106a4a38ba1c29f1a496c231'),('c95b15a864334adab3d5bb6604c6e1fc','bbb','bbb','老王','bbb@store.com','15712344823','2000-02-01','男',0,'71a3a933353347a4bcacff699e6baa9c950a02f6b84e4f6fb8404ca06febfd6f'),('f55b7d3a352a4f0782c910b2c70f1ea4','aaa','aaa','小王','aaa@store.com','15712344823','2000-02-01','男',1,NULL);
  • 导入jar包

  • spring、spring mvc
  • mybatis、spring整合mybatis
  • druid 连接池
  • jsp jstl(标准标签库)
3、导入配置类

创建对应的目录结构

3.1、MyBatis配置类

public class MyBatisConfiguration {

@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
//1 创建
MapperScannerConfigurer mapperScanner = new MapperScannerConfigurer();
//2设置包
mapperScanner.setbasePackage(“com.czxy.ssm.mapper”);
return mapperScanner;
}
}

3.2、 Spring配置类
  • 数据源配置文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db2
jdbc.username=root
jdbc.password=1234

  • 配置类

@ComponentScan(basePackages=“com.czxy.ssm.service”)
@PropertySource(“classpath:db.properties”)
@EnableTransactionManagement
public class SpringConfiguration {

@Bean
public DataSourceTransactionManager txManager(DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
}

3.3、 Spring MVC配置类

@Configuration
@ComponentScan(basePackages=“com.czxy.ssm.controller”)
//public class MvcConfiguration extends WebMvcConfigurationSupport {
public class MvcConfiguration implements WebMvcConfigurer {

@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
//前缀 jsp文件夹
viewResolver.setPrefix("/WEB-INF/pages/");
//后缀 jsp扩展名
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}

3.4、 启动配置类

public class WebInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
//1 配置spring工厂
AnnotationConfigWebApplicationContext application = new AnnotationConfigWebApplicationContext();
// 注册所有的配置类
application.register(MyBatisConfiguration.class);
application.register(SpringConfiguration.class);
application.register(MvcConfiguration.class);
//2 post中文乱码
FilterRegistration.Dynamic encodingFilter = servletContext.addFilter(“encoding”, new CharacterEncodingFilter(“UTF-8”));
encodingFilter.addMappingForUrlPatterns(null, true, “/");
//3 核心控制器
ServletRegistration.Dynamic mvcServlet = servletContext.addServlet(“springmvc”, new DispatcherServlet(application));
//mvcServlet.addMapping("
.action”);
mvcServlet.addMapping("/");
mvcServlet.setLoadonStartup(2); //tomcat启动时,执行servlet的初始化方法
}
}

4、 查询所有
  1. 步骤1:编写JavaBean(User)
  • 提供字段 和 表类对应
  • 添加MyBatis相关注解 @Id 等
  1. 步骤2:编写Mapper(UserMapper)
  • 整合通用Mapper
  1. 步骤3:编写service
  • 需要管理事务
  1. 步骤4:编写controller
  • 处理请求路径
  • 选择视图页面 list
  1. 步骤5:list.jsp 页面展示数据(非重点)

  1. 步骤1:编写JavaBean(User)
  • 提供字段 和 表类对应
  • 添加MyBatis相关注解 @Id 等

@Entity(name=“user”)
public class User {
@Id
private String uid;
@Column(name=“username”)
private String userName;
private String password;
private String name;
private String email;
private String telephone;
private Date birthday;
private String sex;
private Integer state;
private String code;
// 省略getter和setter
}

  1. 步骤2:编写Mapper(UserMapper)
  • 整合通用Mapper

public interface UserMapper extends Mapper {
}

  1. 步骤3:编写service
  • 需要管理事务

public interface UserService {

public List selectAll();
}

@Service
@Transactional
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
@Override
public List selectAll() {
return userMapper.selectAll();
}
}

  1. 步骤4:编写controller
  • 处理请求路径
  • 选择视图页面 list

@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@RequestMapping("/selectAll")
public String selectAll(Model model) {
// 查询所有
List list = userService.selectAll();
// 将查询结果存放request --> 模型
model.addAttribute(“list”, list);
// 设置视图名
return “list”;
}
}

  1. 步骤5:list.jsp 页面展示数据(非重点)(因为我是大数据方向)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    Title



    
            
编号 登录名 昵称 email 电话 操作
${user.uid} ${user.userName} ${user.name} ${user.email} ${user.telephone} 修改 删除
5、 添加
  1. 步骤1:点击添加按钮,显示添加表单

  2. 步骤2:编写controller,处理添加功能

  • 添加成功后,跳转到列表页面
  • 添加失败后,转发添加页面,提示错误信息
  1. 步骤3:编写service,完成添加

  1. 步骤1:点击添加按钮,显示添加表单
  • 1.1 在list.jsp页面中,编写添加按钮

添加

  • 1.2 编程UserController显示jsp


@RequestMapping("/addUI")
public String addUI() {
return “add”;
}

  • 1.3 编写表单
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%--  错误信息   --%>
     ${msg}

    
用户名:
密码:
昵称:
  1. 步骤2:编写controller,处理添加功能
  • 添加成功后,跳转到列表页面
  • 添加失败后,转发添加页面,提示错误信息


@RequestMapping("/add")
public String add(User user, Model model) {
// 添加用户
boolean result = userService.add(user);
if(result) {
// 添加成功
return “redirect:/user/selectAll.action”;
} else {
// 添加失败
model.addAttribute(“msg”, “添加失败”);
return “forward:/WEB-INF/pages/add.jsp”;
}
}

  1. 步骤3:编写service,完成添加(接口+实现类)


boolean add(User user);

@Override
public boolean add(User user) {
// 自动生成id
String uuidString = UUID.randomUUID().toString().replace("-","");
user.setUid(uuidString);
int insert = userMapper.insert(user);
return insert == 1;
}

6、删除用户
  1. 步骤1:点击删除按钮
  2. 步骤2:编写controller,处理删除功能
  • 删除成功后,跳转到列表页面
  • 删除失败后,转发添加页面,提示错误信息
  1. 步骤3:编写service,完成删除

  1. 步骤1:点击删除按钮
删除
  1. 步骤2:编写controller,处理删除功能
  • 删除成功后,跳转到列表页面
  • 删除失败后,转发添加页面,提示错误信息

@RequestMapping("/delete")
public String delete(String uid, Model model) {
System.out.println(“uid:”+uid);
Boolean delete = userService.delete(uid);
if (delete){
return “redirect:selectAll.action”;
}else {
model.addAttribute(“msg”,“删除失败”);
return “forward:/WEB-INF/pages/list.jsp”;
}
}

  1. 步骤3:编写service,完成删除

@Override
public Boolean delete(String uid) {
int insert = userMapper.deleteByPrimaryKey(uid);
if (insert==1){
return true;
}else {
return false;
}
}

7、更新数据
  1. 步骤1:点击修改按钮,显示修改表单

  2. 步骤2:编写controller,处理修改功能

  • 修改成功后,跳转到列表页面
  • 修改失败后,转发修改页面,提示错误信息
  1. 步骤3:编写service,完成修改

  1. 步骤1:点击修改按钮,显示修改表单
  • 1.1 在list.jsp页面中,编写修改按钮
修改
  • 1.2 编程UserController显示jsp

@RequestMapping("/upUI")
public String upUI(String uid,Model model) {
User user = userService.selectById(uid);
model.addAttribute(“uid”,uid);
return “updata”;
}

  • 1.3 编写Service实现类

@Override
public User selectById(String uid) {
User user = userMapper.selectByPrimaryKey(uid);
return user;
}

  • 1.4 编写表单
用户名:
密码:
昵称:
email:
电话:
  1. 步骤2:编写controller,处理修改功能
  • 修改成功后,跳转到列表页面
  • 修改失败后,转发修改页面,提示错误信息

@RequestMapping("/updata")
public String updata(User user,Model model) {
System.out.println(user);
Boolean insert = userService.updata(user);
if (insert){
return “redirect:selectAll.action”;
}else {
model.addAttribute(“msg”,“修改失败”);
return “forward:/WEB-INF/pages/list.jsp”;
}
}

  1. 步骤3:编写service,完成修改

@Override
public Boolean updata(User user) {
int insert = userMapper.updateByPrimaryKey(user);
if (insert==1){
return true;
}else {
return false;
}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327863.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号