IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 单表的增删改查( idea软件 SpringBoot框架 Mybatis-plus插件) -> 正文阅读

[Java知识库]单表的增删改查( idea软件 SpringBoot框架 Mybatis-plus插件)

作者:treeSkill

一.? 效果展示

数据库,表的显示?

网页显示效果

?

目录显示

现在开始写代码了

二.? 搭好springboot框架

可以先用mybatis-plus自动生成一下框架,可以看我之前的博客:逆向生成文件(mybatis-plus)

1. config配置类:

package cn.com.buba.config;



import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @program: demoClass
 * @ClassName MyMetaObjectHandler
 * @description:
 * @author: XXD
 * @create: 2022-06-13 16:53
 * @Version 1.0
 **/
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
    //添加时候自动填充 setFieldValByName三个参数为:映射类字段,填充值,原对象
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("[自动填充公共字段......insert......]");
        metaObject.setValue("firstTime", LocalDateTime.now());
        metaObject.setValue("lastTime", LocalDateTime.now());
    }

    //修改时候自动填充
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("[自动填充公共字段......update......]");
        metaObject.setValue("lastTime", LocalDateTime.now());
    }
}//设置时间的

2.? controller代码:

package cn.com.buba.controller;

import cn.com.buba.entity.TPatient;
import cn.com.buba.service.PatientService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @program: weeklyTest1
 * @ClassName UsersController
 * @description:
 * @author: MSY
 * @create: 2022-06-10 15:12
 * @Version 1.0
 **/
@Slf4j
@Controller
@RequestMapping("/index1")
public class PatientController {

    @Autowired
    private PatientService patientService;
    
    //查询患者
    @RequestMapping("/list")
    public String list(Map<String , Object> map){

        List<TPatient> list = patientService.list();
        map.put("list",list);
        return "index";//返回网页
    }

    //通过id删除用户信息
    @RequestMapping(value = "/delete/{id}")
                    //PathVariable:/del/1
                    // 不添加        /del?id=1
    public String delete(@PathVariable  Integer id){//找到id
        patientService.removeById(id);//根据id删除的方法
      return "forward:/index1/list";//返回查询的页面

    }

    //新增数据
    @GetMapping("/add")//获取新增的前端页面
    public String add(){
        return "add";
    }
    @GetMapping("/adds")//实现修改成功的前端页面
    public String save(TPatient tPatient) {
        patientService.save(tPatient);//新增,保存的方法
        //表示重置list界面(显示页面的)
        return "forward:/index1/list";
    }


    //修改数据
    @GetMapping("/up/{id}")
    //               request请求 在前端也得写一个请求; 获取,找到id
    public String up(HttpServletRequest request, @PathVariable Integer id){
        TPatient byId = patientService.getById(id);//usersService里面获取这个id的方法
        request.setAttribute("by",byId);//获取带值的参数前端得写一个<div th:each="i:${by}">  里面值i.
        return "up";//返回这个页面
    }

    @GetMapping("/ups")
    public String ups(TPatient tPatient) {
        patientService.updateById(tPatient);//用到的usersService里的修改id的方法
        return "forward:/index1/list";//跳转到查询这个页面
    }








}

3.??entity实体类配置

package cn.com.buba.entity;

/**
 * @program: weeklyTest1
 * @ClassName Users
 * @description:实体类
 * @author: MSY
 * @create: 2022-06-10 14:10
 * @Version 1.0
 **/

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/** * user 实体类 */
@Data//get,set方法
public class TPatient implements Serializable {

    @TableId(value = "id",type = IdType.AUTO)

    private Integer id;

    private String name;

    private String documentId;

    private String sex;

    private String idNumber;

    private Integer addressId;

    private Integer reportId;

    //插入时间
    @TableField(fill = FieldFill.INSERT)//加上这个注解得写配置类config;然后在从设计表中把数据类型改成timestamp;前端就不用写时间;他就直接获取
    private LocalDateTime firstTime;

    //更新时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime lastTime;

    private String comment;

}

4.? mapper接口代码:

package cn.com.buba.mapper;

import cn.com.buba.entity.TPatient;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

/**
 * @program: weeklyTest1
 * @interfaceName UsersMapper
 * @description:UsersMapper接口
 * @author: MSY
 * @create: 2022-06-10 14:12
 * @Version 1.0
 **/
@Mapper
public interface PatientMapper extends BaseMapper<TPatient> {

}

5.? service服务代码:

package cn.com.buba.service;

import cn.com.buba.entity.TPatient;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @program: weeklyTest1
 * @ClassName UsersMapper
 * @description:
 * @author: MSY
 * @create: 2022-06-10 14:13
 * @Version 1.0
 **/

public interface PatientService extends IService<TPatient> {

}

6.? impl实现类代码:templates

package cn.com.buba.service.impl;

import cn.com.buba.entity.TPatient;
import cn.com.buba.mapper.PatientMapper;
import cn.com.buba.service.PatientService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * @program: weeklyTest1
 * @ClassName UsersServiceImpl
 * @description:
 * @author: MSY
 * @create: 2022-06-10 14:14
 * @Version 1.0
 **/
@Service
public class PatientServiceImpl extends ServiceImpl<PatientMapper, TPatient> implements PatientService {

}
7. templates包index显示页面代码:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><!--Thymeleaf是?向Web和独?环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚?纯?本。-->
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<a href="/index1/add">新增</a><!--和后端约定的路径的路径-->
<table border="1">
  <tr>
    <th>患者编号</th>
    <th>患者名字</th>
    <th>档案号</th>
    <th>性别</th>
    <th>患者身份证号</th>
    <th>住址编号</th>
    <th>实验报告表编号</th>
    <th>插入时间</th>
    <th>更新时间</th>
    <th>备注</th>
  </tr>
  <tr th:each="li:${list}">
    <td th:text="${li.id}"></td>
    <td th:text="${li.name}"></td>
    <td th:text="${li.documentId}"></td>
    <td th:text="${li.sex}"></td>
    <td th:text="${li.idNumber}"></td>
    <td th:text="${li.addressId}"></td>
    <td th:text="${li.reportId}"></td>
    <td th:text="${li.firstTime}"></td>
    <td th:text="${li.lastTime}"></td>
    <td th:text="${li.comment}"></td>
    <td>
      <a th:href="@{/index1/delete/} + ${li.id}">删除</a><!--和后端约定的路径的路径-->
    </td>
    <td>
      <a th:href="@{'/index1'+'/up/'+${li.id}}">修改</a><!--和后端约定的路径的路径-->
    </td>
  </tr>
</table>
</body>
</html>

8.add.html新增页面代码:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="adds" method="get">
  <h1>患者信息表</h1>
  <div>
    <label>患者编号</label>
    <input type="text"  name="id">
  </div>
  <br>
  <div>
    <label>患者名字</label>
    <input type="text"  name="name">
  </div>
  <br>
  <div>
    <label>档案号</label>
    <input type="text"  name="age">
  </div>
  <br>
  <div>
    <label>患者性别</label>
    <input type="text"  name="sex">
  </div>
  <br>
  <div>
    <label>患者身份证号</label>
    <input type="text"  name="idNumber">
  </div>
  <br>
  <div>
    <label>住址编号</label>
    <input type="text"  name="addressId">
  </div>
  <br>
  <div>
    <label>实验报告表编号</label>
    <input type="text"  name="reportId">
  </div>
  <br>
  <!--在这不用写时间的前端它将自动生成-->
  <div>
    <label>备注</label>
    <input type="text"  name="idNumber">
  </div>
  <button type="submit">保存</button>
</form>
</body>
</html>

9.? up.html修改页面代码:

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/index1/ups" method="get"><!--约定路径;请求get-->
  <h1>患者信息表</h1>
  <div th:each="i:${by}">
    <div>
      <label>患者编号</label>
      <input type="text" th:value="${i.id}" name="id"  readonly><!--readonly意思是不能删除id,只能看不能动-->
    </div>
    <br>
    <div>
      <label>患者名字</label>
      <input type="text" th:value="${i.name}" name="name">
    </div>
    <br>
    <div>
      <label>档案号</label>
      <input type="text" th:value="${i.documentId}" name="documentId">
    </div>
    <br>
    <div>
      <label>患者性别</label>
      <input type="text" th:value="${i.sex}" name="sex">
    </div>
    <br>
    <div>
      <label>患者身份证号</label>
      <input type="text" th:value="${i.idNumber}" name="idNumber">
    </div>
    <br>
    <div>
      <label>住址编号</label>
      <input type="text" th:value="${i.addressId}" name="addressId">
    </div>
    <br>
    <div>
      <label>实验报告表编号</label>
      <input type="text" th:value="${i.reportId}" name="reportId">
    </div>
    <br>
    <!--在这不用写时间的前端它将自动生成-->
    <div>
      <label>备注</label>
      <input type="text" th:value="${i.comment}" name="comment">
    </div>
  <button type="submit">保存</button>
  </div>
</form>
</body>
</html>

10.??application.properties配置文件代码:

spring.profiles.active=dev

11.??application-dev.properties配置文件代码:

server.port=8080

spring.application.name=mp-test

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3307/yygh_hosp?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.druid.password=123456

#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
mybatis-plus.configuration.map-underscore-to-camel-case=true

#日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#主键生成策略:雪花算法
#mybatis-plus.configuration.global-config.db-config.id-type=ASSIGN_ID


spring.mvc.hiddenmethod.filter.enabled=true

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:25:27  更:2022-07-05 23:26:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:24:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码