![256e6c0d3c149473f4793aae9f8a6176.png](https://i-blog.csdnimg.cn/blog_migrate/1ed181c32be847444601161bc30e0cab.jpeg)
本章节重点介绍Mybatis集成,对数据库的CURD操作
一、准备工作
(1)测试工具Postman,省掉写页面代码,因为前端一般有成熟的框架和ui
模拟http请求数据用。下载地址https://dl.pstmn.io/download/latest/win64
(2)数据库建表以sys_user表为例,对该表进行CURD操作
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',
`nickname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '中文昵称',
`role_id` int(11) NULL DEFAULT 0 COMMENT '角色ID',
`create_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`delete_status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '是否有效 1有效 0无效',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10008 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
二、开始搭建集成Mybatis
(1)pom.xml引入mybatis相关依赖
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
(2)创建类接口和服务方法等,后续熟练条件下可以用mybatis-generator根据数据库表自动生成,目前练习用。User,UserDao,UserService,UserServiceImpl,UserController,代码结构如下图:
![a9558b2c390a2715d82b5348f3d0ce3d.png](https://i-blog.csdnimg.cn/blog_migrate/ef8b5c444c29cb0291d8c14e13311ea2.jpeg)
User.java
package com.kcn.demo.model;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private static final long serialVersionUID = 7947712636680613254L;
private Integer id;
private String username;
private String password;
private String nickname;
private Integer role_id;
private Date create_time;
private Date update_time;
private String delete_status;
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;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Integer getRole_id() {
return role_id;
}
public void setRole_id(Integer role_id) {
this.role_id = role_id;
}
public Date getCreate_time() {
return create_time;
}
public void setCreate_time(Date create_time) {
this.create_time = create_time;
}
public Date getUpdate_time() {
return update_time;
}
public void setUpdate_time(Date update_time) {
this.update_time = update_time;
}
public String getDelete_status() {
return delete_status;
}
public void setDelete_status(String delete_status) {
this.delete_status = delete_status;
}
}
UserDao.java
package com.kcn.demo.dao;
import com.kcn.demo.model.User;
import java.util.List;
public interface UserDao {
User selectByPrimaryKey(Integer id);
List<User> listAll();
int insert(User user);
int insertSelective(User user);
int updateByPrimaryKeySelective(User user);
int updateByPrimaryKey(User user);
int deleteByPrimaryKey(Integer id);
}
UserService.java
package com.kcn.demo.service;
import com.kcn.demo.model.User;
import java.util.List;
public interface UserService {
public User selectByPrimaryKey(Integer id);
public List<User> listAll();
public int insert(User user);
public int insertSelective(User user);
public int updateByPrimaryKeySelective(User user);
public int updateByPrimaryKey(User user);
public int deleteByPrimaryKey(Integer id);
}
UserServiceImpl.java
package com.kcn.demo.service.impl;
import com.kcn.demo.dao.UserDao;
import com.kcn.demo.model.User;
import com.kcn.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User selectByPrimaryKey(Integer id) {
return userDao.selectByPrimaryKey(id);
}
@Override
public List<User> listAll() {
return userDao.listAll();
}
@Override
public int insert(User user) {
return userDao.insert(user);
}
@Override
public int insertSelective(User user) {
return userDao.insertSelective(user);
}
@Override
public int updateByPrimaryKeySelective(User user) {
return userDao.updateByPrimaryKeySelective(user);
}
@Override
public int updateByPrimaryKey(User user) {
return userDao.updateByPrimaryKey(user);
}
@Override
public int deleteByPrimaryKey(Integer id) {
return userDao.deleteByPrimaryKey(id);
}
}
UserMapper.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.kcn.demo.dao.UserDao">
<resultMap id="BaseResultMap" type="com.kcn.demo.model.User">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="username" jdbcType="VARCHAR" property="username"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
<result column="nickname" jdbcType="VARCHAR" property="nickname"/>
<result column="role_id" jdbcType="INTEGER" property="role_id"/>
<result column="create_time" jdbcType="TIMESTAMP" property="create_time"/>
<result column="update_time" jdbcType="TIMESTAMP" property="update_time"/>
<result column="delete_status" jdbcType="VARCHAR" property="delete_status"/>
</resultMap>
<sql id="Base_Column_List">
id, username, password, nickname, role_id, create_time, update_time, delete_status
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from sys_user
where id = #{id,jdbcType=INTEGER}
</select>
<select id="listAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from sys_user
</select>
<insert id="insert" parameterType="com.kcn.demo.model.User">
insert into sys_user (username, password,
nickname, role_id, create_time,
update_time, delete_status)
values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{nickname,jdbcType=VARCHAR}, #{role_id,jdbcType=INTEGER}, #{create_time,jdbcType=TIMESTAMP},
#{update_time,jdbcType=TIMESTAMP}, #{delete_status,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.kcn.demo.model.User">
insert into sys_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="username != null">
username,
</if>
<if test="password != null">
password,
</if>
<if test="nickname != null">
nickname,
</if>
<if test="role_id != null">
role_id,
</if>
<if test="create_time != null">
create_time,
</if>
<if test="update_time != null">
update_time,
</if>
<if test="delete_status != null">
delete_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
#{password,jdbcType=VARCHAR},
</if>
<if test="nickname != null">
#{nickname,jdbcType=VARCHAR},
</if>
<if test="role_id != null">
#{role_id,jdbcType=INTEGER},
</if>
<if test="create_time != null">
#{create_time,jdbcType=TIMESTAMP},
</if>
<if test="update_time != null">
#{update_time,jdbcType=TIMESTAMP},
</if>
<if test="delete_status != null">
#{delete_status,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.kcn.demo.model.User">
update sys_user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password,jdbcType=VARCHAR},
</if>
<if test="nickname != null">
nickname = #{nickname,jdbcType=VARCHAR},
</if>
<if test="role_id != null">
role_id = #{role_id,jdbcType=INTEGER},
</if>
<if test="create_time != null">
create_time = #{create_time,jdbcType=TIMESTAMP},
</if>
<if test="update_time != null">
update_time = #{update_time,jdbcType=TIMESTAMP},
</if>
<if test="delete_status != null">
delete_status = #{delete_status,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.kcn.demo.model.User">
update sys_user
set username = #{username,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
nickname = #{nickname,jdbcType=VARCHAR},
role_id = #{role_id,jdbcType=INTEGER},
create_time = #{create_time,jdbcType=TIMESTAMP},
update_time = #{update_time,jdbcType=TIMESTAMP},
delete_status = #{delete_status,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_user
where id = #{id,jdbcType=INTEGER}
</delete>
<select id="selectBySelective" parameterType="com.kcn.demo.model.User" resultType="com.kcn.demo.model.User">
select * from sys_user
<trim prefix="WHERE" prefixOverrides="AND">
<if test="id != null">
and id=#{id}
</if>
<if test="username != null">
and username=#{username}
</if>
<if test="password != null">
and password=#{password}
</if>
<if test="nickname != null">
and nickname=#{nickname}
</if>
<if test="role_id != null">
and role_id=#{role_id}
</if>
<if test="create_time != null">
and create_time=#{create_time}
</if>
<if test="update_time != null">
and update_time=#{update_time}
</if>
<if test="delete_status != null">
and delete_status=#{delete_status}
</if>
</trim>
</select>
</mapper>
(3)修改配置文件,SpringBoot和Spring MVC,最大的区别,小编认为省去了很多配置文件,比如filter过滤器,我们以前通常配以.jsp或者.do,.html结尾进行拦截;注解的时候扫码哪些方法,还有xml文件,SpringBoot比较简洁。主要配置如下:
主体SpringbootmybatisApplication添加扫描MapperScan("com.kcn.demo.dao")注解
package com.kcn.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.kcn.demo.dao")
public class SpringbootmybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootmybatisApplication.class, args);
}
}
(4)配置application.yml文件xml地址
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mymall?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
mybatis:
mapperLocations: classpath:/mapper/*.xml
三、mybatis xml文件方法,比较常用id查询,查询所有,删除等就省去了,重点介绍动态的sql
(1)新增insert,完全与数据库匹配
<insert id="insert" parameterType="com.kcn.demo.model.User">
insert into sys_user (username, password,
nickname, role_id, create_time,
update_time, delete_status)
values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{nickname,jdbcType=VARCHAR}, #{role_id,jdbcType=INTEGER}, #{create_time,jdbcType=TIMESTAMP},
#{update_time,jdbcType=TIMESTAMP}, #{delete_status,jdbcType=VARCHAR})
</insert>
(2)新增insert,动态sql,字段不确定,有缺省字段
<insert id="insertSelective" parameterType="com.kcn.demo.model.User">
insert into sys_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="username != null">
username,
</if>
<if test="password != null">
password,
</if>
<if test="nickname != null">
nickname,
</if>
<if test="role_id != null">
role_id,
</if>
<if test="create_time != null">
create_time,
</if>
<if test="update_time != null">
update_time,
</if>
<if test="delete_status != null">
delete_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
#{password,jdbcType=VARCHAR},
</if>
<if test="nickname != null">
#{nickname,jdbcType=VARCHAR},
</if>
<if test="role_id != null">
#{role_id,jdbcType=INTEGER},
</if>
<if test="create_time != null">
#{create_time,jdbcType=TIMESTAMP},
</if>
<if test="update_time != null">
#{update_time,jdbcType=TIMESTAMP},
</if>
<if test="delete_status != null">
#{delete_status,jdbcType=VARCHAR},
</if>
</trim>
</insert>
(3)修改动态sql,不是修改所有字段,有值才修改,没有传值就不修改,很常见的应用
<update id="updateByPrimaryKeySelective" parameterType="com.kcn.demo.model.User">
update sys_user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password,jdbcType=VARCHAR},
</if>
<if test="nickname != null">
nickname = #{nickname,jdbcType=VARCHAR},
</if>
<if test="role_id != null">
role_id = #{role_id,jdbcType=INTEGER},
</if>
<if test="create_time != null">
create_time = #{create_time,jdbcType=TIMESTAMP},
</if>
<if test="update_time != null">
update_time = #{update_time,jdbcType=TIMESTAMP},
</if>
<if test="delete_status != null">
delete_status = #{delete_status,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
(4)动态sql查询,根据条件
<select id="selectBySelective" parameterType="com.kcn.demo.model.User" resultType="com.kcn.demo.model.User">
select * from sys_user
<trim prefix="WHERE" prefixOverrides="AND">
<if test="id != null">
and id=#{id}
</if>
<if test="username != null">
and username=#{username}
</if>
<if test="password != null">
and password=#{password}
</if>
<if test="nickname != null">
and nickname=#{nickname}
</if>
<if test="role_id != null">
and role_id=#{role_id}
</if>
<if test="create_time != null">
and create_time=#{create_time}
</if>
<if test="update_time != null">
and update_time=#{update_time}
</if>
<if test="delete_status != null">
and delete_status=#{delete_status}
</if>
</trim>
</select>
四、工程启动发现controller的url地址,没有办法访问,是因为过滤器没有定义,定义工程的全局过滤器,定义哪些url不用拦截,比如说静态资源,样式css,js等
WebConfig.java
package com.kcn.demo.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.*;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
LoginInterceptor loginInterceptor;
/**
* 不需要登录拦截的url
*/
final String[] notLoginInterceptPaths = {"/static/**", "/admin/login", "/error/**", "/login","/user"};
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 这里添加多个拦截器
// 登录拦截器
registry.addInterceptor(loginInterceptor).addPathPatterns("/**")
.excludePathPatterns(notLoginInterceptPaths);
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
/**
* 配置不需要经过controller就跳转到登录页面
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("login");
}
/***
* addResourceLocations指的是文件放置的目录,addResoureHandler指的是对外暴露的访问路径
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// TODO Auto-generated method stub
//排除静态资源拦截
registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/static/");
WebMvcConfigurer.super.addResourceHandlers(registry);
}
}
定义登录认证,未进行登录认证,请求的数据未获取userkey,则去登陆认证,此处注释都返回true,后续讲解权限认证时详细讲解
LoginInterceptor.java
package com.kcn.demo.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
public class LoginInterceptor extends HandlerInterceptorAdapter {
Logger logger = LoggerFactory.getLogger(getClass());
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info("进入LoginInterceptor拦截器==============");
String basePath = request.getContextPath();
String path = request.getRequestURI();
logger.info("basePath:" + basePath);
logger.info("path:" + path);
logger.info("userkey:" + request.getSession().getAttribute("userkey"));
/* if (request.getSession().getAttribute("userkey") == null) {
logger.info("尚未登录,跳转到登录界面");
response.setHeader("Content-Type", "text/html;charset=UTF-8");
response.sendRedirect(request.getContextPath() + "/login");
return true;
}*/
logger.info("已登录,放行!");
return true;
}
}
五、数据返回格式json转换,前后台开发分离或者做接口开方时方便,本工程增加了数据返回格式的转换
pom.xml增回json包依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
userController.java 完整的CURD操作
package com.kcn.demo.controller;
import com.alibaba.fastjson.JSONObject;
import com.kcn.demo.model.User;
import com.kcn.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询用户列表
*/
@GetMapping("/listUser")
public JSONObject listUser(HttpServletRequest request) {
JSONObject jSONObject = new JSONObject();
List<User> listBanner = new ArrayList<>();
listBanner = userService.listAll();
String msgCode = "";
String msgContent = "";
if (listBanner.size() > 0) {
msgCode = "1";
msgContent = "请求执行成功!";
jSONObject.put("listBanner", listBanner);
} else {
msgCode = "0";
msgContent = "请求执行失败!!";
}
jSONObject.put("msgCode", msgCode);
jSONObject.put("msgContent", msgContent);
return jSONObject;
}
/**
* 新增用户
*/
@PostMapping("/addUser")
public JSONObject addUser(HttpServletRequest request) throws ParseException {
JSONObject jSONObject = new JSONObject();
String msgCode = "";
String msgContent = "";
String username = request.getParameter("username");
String password = request.getParameter("password");
String nickname = request.getParameter("nickname");
String role_id = request.getParameter("role_id");
String create_time = request.getParameter("create_time");
String update_time = request.getParameter("update_time");
String delete_status = request.getParameter("delete_status");
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setNickname(nickname);
user.setRole_id(Integer.parseInt(role_id));
/**
* String转换Date
*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date create_time_date = null;
create_time_date = simpleDateFormat.parse(create_time);
user.setCreate_time(create_time_date);
Date update_time_date = null;
update_time_date = simpleDateFormat.parse(update_time);
user.setUpdate_time(update_time_date);
user.setDelete_status(delete_status);
try {
userService.insert(user);
msgCode = "1";
msgContent = "请求执行成功!";
jSONObject.put("user", user);
} catch (Exception e) {
msgCode = "0";
msgContent = "请求执行失败!!";
e.getMessage();
}
jSONObject.put("msgCode", msgCode);
jSONObject.put("msgContent", msgContent);
return jSONObject;
}
/**
* 新增用户缺省字段
*/
@PostMapping("/addSomeUser")
public JSONObject addSomeUser(HttpServletRequest request) throws ParseException {
JSONObject jSONObject = new JSONObject();
String msgCode = "";
String msgContent = "";
String username = request.getParameter("username");
String password = request.getParameter("password");
String nickname = request.getParameter("nickname");
String role_id = request.getParameter("role_id");
String create_time = request.getParameter("create_time");
String update_time = request.getParameter("update_time");
String delete_status = request.getParameter("delete_status");
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setNickname(nickname);
user.setRole_id(Integer.parseInt(role_id));
/**
* String转换Date
*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date create_time_date = null;
create_time_date = simpleDateFormat.parse(create_time);
user.setCreate_time(create_time_date);
Date update_time_date = null;
update_time_date = simpleDateFormat.parse(update_time);
user.setUpdate_time(update_time_date);
user.setDelete_status(delete_status);
try {
userService.insertSelective(user);
msgCode = "1";
msgContent = "请求执行成功!";
jSONObject.put("user", user);
} catch (Exception e) {
msgCode = "0";
msgContent = "请求执行失败!!";
e.getMessage();
}
jSONObject.put("msgCode", msgCode);
jSONObject.put("msgContent", msgContent);
return jSONObject;
}
/**
* 修改用户
*/
@PostMapping("/updateUser")
public JSONObject updateUser(HttpServletRequest request) throws ParseException {
JSONObject jSONObject = new JSONObject();
String msgCode = "";
String msgContent = "";
String id = request.getParameter("id");
String username = request.getParameter("username");
String password = request.getParameter("password");
String nickname = request.getParameter("nickname");
String role_id = request.getParameter("role_id");
String create_time = request.getParameter("create_time");
String update_time = request.getParameter("update_time");
String delete_status = request.getParameter("delete_status");
User user = new User();
user.setId(Integer.parseInt(id));
user.setUsername(username);
user.setPassword(password);
user.setNickname(nickname);
user.setRole_id(Integer.parseInt(role_id));
/**
* String转换Date
*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date create_time_date = null;
create_time_date = simpleDateFormat.parse(create_time);
user.setCreate_time(create_time_date);
Date update_time_date = null;
update_time_date = simpleDateFormat.parse(update_time);
user.setUpdate_time(update_time_date);
user.setDelete_status(delete_status);
try {
userService.updateByPrimaryKey(user);
msgCode = "1";
msgContent = "请求执行成功!";
jSONObject.put("user", user);
} catch (Exception e) {
msgCode = "0";
msgContent = "请求执行失败!!";
e.getMessage();
}
jSONObject.put("msgCode", msgCode);
jSONObject.put("msgContent", msgContent);
return jSONObject;
}
/**
* 修改用户缺省字段
*/
@PostMapping("/updateSomeUser")
public JSONObject updateSomeUser(HttpServletRequest request) throws ParseException {
JSONObject jSONObject = new JSONObject();
String msgCode = "";
String msgContent = "";
String id = request.getParameter("id");
String username = request.getParameter("username");
String password = request.getParameter("password");
String nickname = request.getParameter("nickname");
String role_id = request.getParameter("role_id");
String create_time = request.getParameter("create_time");
String update_time = request.getParameter("update_time");
String delete_status = request.getParameter("delete_status");
User user = new User();
user.setId(Integer.parseInt(id));
user.setUsername(username);
user.setPassword(password);
user.setNickname(nickname);
user.setRole_id(Integer.parseInt(role_id));
/**
* String转换Date
*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date create_time_date = null;
create_time_date = simpleDateFormat.parse(create_time);
user.setCreate_time(create_time_date);
Date update_time_date = null;
update_time_date = simpleDateFormat.parse(update_time);
user.setUpdate_time(update_time_date);
user.setDelete_status(delete_status);
try {
userService.updateByPrimaryKeySelective(user);
msgCode = "1";
msgContent = "请求执行成功!";
jSONObject.put("user", user);
} catch (Exception e) {
msgCode = "0";
msgContent = "请求执行失败!!";
e.getMessage();
}
jSONObject.put("msgCode", msgCode);
jSONObject.put("msgContent", msgContent);
return jSONObject;
}
/**
* 删除用户
*/
@PostMapping("/deleteUser")
public JSONObject deleteUser(HttpServletRequest request) throws ParseException {
JSONObject jSONObject = new JSONObject();
String msgCode = "";
String msgContent = "";
String id = request.getParameter("id");
try {
userService.deleteByPrimaryKey(Integer.parseInt(id));
msgCode = "1";
msgContent = "请求执行成功!";
} catch (Exception e) {
msgCode = "0";
msgContent = "请求执行失败!!";
e.getMessage();
}
jSONObject.put("msgCode", msgCode);
jSONObject.put("msgContent", msgContent);
return jSONObject;
}
}
五、启动工程,使用postman工具各种测试吧
![1403890f125a13a4dd93d3dca35a534a.png](https://i-blog.csdnimg.cn/blog_migrate/16f4983dd48d0fe2e50a4c490b741d6e.jpeg)
测试ok
下一章节,重点介绍mybatis的事务处理