- 1、需求
- 2、环境搭建
- 3、导入配置类
- 3.1、MyBatis配置类
- 3.2、 Spring配置类
- 3.3、 Spring MVC配置类
- 3.4、 启动配置类
- 4、 查询所有
- 5、 添加
- 6、删除用户
- 7、更新数据
用户的增删改查
- SSM:spring mvc 、spring、mybatis
- view:jsp (非重点)
-
项目名: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.2、 Spring配置类public class MyBatisConfiguration {
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
//1 创建
MapperScannerConfigurer mapperScanner = new MapperScannerConfigurer();
//2设置包
mapperScanner.setbasePackage(“com.czxy.ssm.mapper”);
return mapperScanner;
}
}
- 数据源配置文件
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db2
jdbc.username=root
jdbc.password=1234
- 配置类
3.3、 Spring MVC配置类@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.4、 启动配置类@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;
}
}
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的初始化方法
}
}
- 步骤1:编写JavaBean(User)
- 提供字段 和 表类对应
- 添加MyBatis相关注解 @Id 等
- 步骤2:编写Mapper(UserMapper)
- 整合通用Mapper
- 步骤3:编写service
- 需要管理事务
- 步骤4:编写controller
- 处理请求路径
- 选择视图页面 list
- 步骤5:list.jsp 页面展示数据(非重点)
- 步骤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
}
- 步骤2:编写Mapper(UserMapper)
- 整合通用Mapper
public interface UserMapper extends Mapper {
}
- 步骤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();
}
}
- 步骤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”;
}
}
- 步骤5:list.jsp 页面展示数据(非重点)(因为我是大数据方向)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Title
| 编号 | 登录名 | 昵称 | 电话 | 操作 | |
| ${user.uid} | ${user.userName} | ${user.name} | ${user.email} | ${user.telephone} | 修改 删除 |
-
步骤1:点击添加按钮,显示添加表单
-
步骤2:编写controller,处理添加功能
- 添加成功后,跳转到列表页面
- 添加失败后,转发添加页面,提示错误信息
- 步骤3:编写service,完成添加
- 步骤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}
- 步骤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”;
}
}
- 步骤3:编写service,完成添加(接口+实现类)
boolean add(User user);
6、删除用户@Override
public boolean add(User user) {
// 自动生成id
String uuidString = UUID.randomUUID().toString().replace("-","");
user.setUid(uuidString);
int insert = userMapper.insert(user);
return insert == 1;
}
- 步骤1:点击删除按钮
- 步骤2:编写controller,处理删除功能
- 删除成功后,跳转到列表页面
- 删除失败后,转发添加页面,提示错误信息
- 步骤3:编写service,完成删除
- 步骤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”;
}
}
- 步骤3:编写service,完成删除
7、更新数据@Override
public Boolean delete(String uid) {
int insert = userMapper.deleteByPrimaryKey(uid);
if (insert==1){
return true;
}else {
return false;
}
}
-
步骤1:点击修改按钮,显示修改表单
-
步骤2:编写controller,处理修改功能
- 修改成功后,跳转到列表页面
- 修改失败后,转发修改页面,提示错误信息
- 步骤3:编写service,完成修改
- 步骤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 编写表单
- 步骤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”;
}
}
- 步骤3:编写service,完成修改
@Override
public Boolean updata(User user) {
int insert = userMapper.updateByPrimaryKey(user);
if (insert==1){
return true;
}else {
return false;
}
}



