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

后端代码增删改查的编写~

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

后端代码增删改查的编写~

首先进行application.properties文件的编辑
## 配置application.properties文件,但这里我将文件改成yml格式
#配置数据库链接的四要素
# mysql驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库的url
spring.datasource.url=jdbc:mysql://localhost:3306/base_framework
#数据库用户名
spring.datasource.username=数据库用户名
#数据库密码
spring.datasource.password=数据库密码

#为指定包下的类,设置别名
mybatis.type-aliases-package=com.itheima.pojo
#开启驼峰命名映射
mybatis.configuration.map-underscore-to-camel-case=true
#指定控制台输出日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
实体类
import lombok.Data;
import java.time.LocalDateTime;

@Data
public class Dish {

    private Integer id;
    private String name;//菜品名称
    private Integer categoryId;    //菜品分类id
    private double price;    //菜品价格
    private String image;    //图片
    private String description;    //描述信息
    private Integer status;    //0 停售 1 起售
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

创建分页条件查询的实体类
package com.itheima.domain;

import lombok.Data;

import java.util.List;


@Data
public class PageBean {
    private List rows;//当前页数据
    private Long totalCount;//总记录数

}

定义通用的返回值为R
package com.itheima.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class R {
    private Integer code;
    private String msg;
    private Object data;


    public static R success(){
        return new R(200,"success",null);
    }

    public static R success(Object data){
        return new R(200,"msg",data);
    }
    public static R error(String msg){
        return new R(500,msg,null);
    }
}


mapper层代码
package com.itheima.mapper;

import com.itheima.domain.Dish;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface DishMapper {
    
    @Select("select * from dish;")
    List findAll();


    
    @Select("select * from dish where id = #{id};")
    Dish selectById(Integer id);


    
    @Insert("insert into dish (name, category_id, price, image, description, status, create_time, update_time) " +
            "values (#{name},n" +
            "#{categoryId}, n" +
            "#{price},n" +
            "#{image},n" +
            "#{description},n" +
            "#{status},n" +
            "#{createTime},n" +
            "#{updateTime});")
    void insertAll(Dish dish);



    
    @Delete("delete from dish where id=#{id};")
    void deleteAll(Integer id);

    
    @Update("update dish set status = #{status} where id=#{id};")
    void updateStatus(Integer id, Integer status);

    @Update("update dish set " +
            "status = #{status}," +
            "name = #{name}," +
            "category_id = #{categoryId}," +
            "price = #{price}," +
            "description = #{description}," +
            "update_time = #{updateTime}," +
            "image = #{image} where id = #{id};")
    void update(Dish dish);

    

  void deleteByIds(Integer[] ids);

    

    List findPage(Dish dish);
}
批量删除和分页查询条件
使用了动态sql。并在Resources下创建和mapper一样的同包同名,并且其中的nameplace是mapper下


代码如下:




    
        delete
        from dish
        
            id in
            
                #{id}
            
        
    
    

service层

创建com.itheima.service 包,定义 DishService接口

package com.itheima.service;

import com.itheima.domain.Dish;
import com.itheima.domain.PageBean;

import java.util.List;

public interface DishService {
    
    List findAll();

    
    Dish selectById(Integer id);

    
    void insertAll(Dish dish);

    
    void deleteById(Integer id);

    
    void updateStatus(Integer id, Integer status);


    
    void update(Dish dish);

    

    void deleteByIds(Integer[] id);

    

    PageBean findPage(Integer currentPage,Integer pageSize,Dish dish);



}

serviceimpl层
创建`com.itheima.service.impl` 包,定义 `DishServiceImpl`类,实现 `DishService`接口,注入`DishMapper`
package com.itheima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.anno.Log;
import com.itheima.domain.Dish;
import com.itheima.domain.PageBean;
import com.itheima.mapper.DishMapper;
import com.itheima.service.DishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


import java.time.LocalDateTime;
import java.util.List;


@Service
public class DishServiceImpl implements DishService {
    
    @Autowired
    private DishMapper dishMapper;

    
    @Override
    public List findAll() {

        return dishMapper.findAll();
    }

    
    @Override
    public Dish selectById(Integer id) {
        return dishMapper.selectById(id);
    }

    
    @Log
    @Override
    public void insertAll(Dish dish) {
        //设置修改时间
        dish.setUpdateTime(LocalDateTime.now());
        //设置创建时间
        dish.setCreateTime(LocalDateTime.now());
        //设置状态
        dish.setStatus(1);
        dishMapper.insertAll(dish);
    }

    
    @Log
    @Override
    public void deleteById(Integer id) {
        dishMapper.deleteAll(id);
    }

    
    @Log
    @Override
    public void updateStatus(Integer id, Integer status) {
        dishMapper.updateStatus(id, status);
    }

    
    @Log
    @Override
    public void update(Dish dish) {
        //1. 设置更新时间
        dish.setUpdateTime(LocalDateTime.now());

        //2. 调用mapper
        dishMapper.update(dish);
    }

    
    @Log
    @Override
    public void deleteByIds(Integer[] ids) {
        dishMapper.deleteByIds(ids);
    }

    

    @Override
    public PageBean findPage(Integer currentPage, Integer pageSize, Dish dish) {
        PageHelper.startPage(currentPage, pageSize);

        Page page = (Page) dishMapper.findPage(dish);

        PageBean pageBean = new PageBean<>();

        pageBean.setTotalCount(page.getTotal());

        pageBean.setRows(page.getResult());
        return pageBean;
    }
}

controller层代码:
package com.itheima.controller;

import com.itheima.domain.Dish;
import com.itheima.domain.PageBean;
import com.itheima.domain.R;
import com.itheima.service.DishService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
@RequestMapping("/dish")
public class DishController {
    
    
    @Autowired
    private DishService dishService;

    
    @GetMapping("/findAll")
    public R findAll() {
        List dish = dishService.findAll();
        return R.success(dish);
    }
    
    @GetMapping("/{id}")
    public R selectById(@PathVariable  Integer id){
        Dish dish = dishService.selectById(id);
        return R.success(dish);
    }

    
    @PostMapping("/insertAll")
    public R insertAll(@RequestBody Dish dish){
        dishService.insertAll(dish);
        return R.success();
    }


    
   

    
    @PutMapping("/{id}/{status}")
    public R updateStatus(@PathVariable Integer id, @PathVariable Integer status) {
        dishService.updateStatus(id, status);
        return R.success();
    }

    
    @PutMapping
    public R update(@RequestBody Dish dish){
        dishService.update(dish);
        return R.success();
    }

    

    @DeleteMapping("/{ids}")
    public R deleteByIds(@PathVariable Integer[] ids){
        dishService.deleteByIds(ids);
        return R.success();
    }

    
    @PostMapping("/findPage")
    public R findPage(Integer currentPage,Integer pageSize,@RequestBody Dish dish){
        PageBean page = dishService.findPage(currentPage, pageSize, dish);
        return R.success(page);
    }


}

mysql:数据
create database base_framework default charset utf8mb4;

use base_framework;

drop table if exists dish;


CREATE TABLE `dish` (
  `id` int  PRIMARY KEY AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(20) DEFAULT NULL COMMENT '名称',
  `category_id` int DEFAULT NULL COMMENT '分类ID',
  `price` double(10,2) DEFAULT NULL COMMENT '价格',
  `image` varchar(100) DEFAULT NULL COMMENT '图片名称',
  `description` varchar(200) DEFAULT NULL COMMENT '描述',
  `status` tinyint NOT NULL COMMENT '状态, 1:启售, 0:停售',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间'
)  COMMENT='菜品表';

INSERT INTO `dish` VALUES (1,'辣子鸡',1,78.00,'f966a38e-0780-40be-bb52-5699d13cb3d9.jpg','来自鲜嫩美味的小鸡,值得一尝',1,'2022-05-27 09:38:43','2022-05-27 09:38:43');
INSERT INTO `dish` VALUES (2,'毛氏红烧肉',1,68.00,'0a3b3288-3446-4420-bbff-f263d0c02d8e.jpg','毛氏红烧肉毛氏红烧肉,确定不来一份?',1,'2022-05-27 09:40:19','2022-05-27 09:40:19');
INSERT INTO `dish` VALUES (3,'组庵鱼翅',1,48.00,'740c79ce-af29-41b8-b78d-5f49c96e38c4.jpg','组庵鱼翅,看图足以表明好吃程度',1,'2022-05-27 09:41:19','2022-05-27 09:41:19');
INSERT INTO `dish` VALUES (4,'霸王别姬',1,128.00,'057dd338-e487-4bbc-a74c-0384c44a9ca3.jpg','还有什么比霸王别姬更美味的呢?',1,'2022-05-27 09:43:08','2022-05-27 09:43:08');
INSERT INTO `dish` VALUES (5,'全家福',1,118.00,'a53a4e6a-3b83-4044-87f9-9d49b30a8fdc.jpg','别光吃肉啦,来份全家福吧,让你长寿又美味',1,'2022-05-27 09:44:08','2022-05-27 09:44:08');
INSERT INTO `dish` VALUES (6,'邵阳猪血丸子',1,138.00,'2a50628e-7758-4c51-9fbb-d37c61cdacad.jpg','看,美味不?来嘛来嘛,这才是最爱吖',1,'2022-05-27 09:45:12','2022-05-27 09:45:12');
INSERT INTO `dish` VALUES (7,'口味蛇',2,168.00,'0f4bd884-dc9c-4cf9-b59e-7d5958fec3dd.jpg','爬行界的扛把子,东兴-口味蛇,让你欲罢不能',1,'2022-05-27 09:46:23','2022-05-27 09:46:23');
INSERT INTO `dish` VALUES (8,'辣子鸡丁',2,88.00,'ef2b73f2-75d1-4d3a-beea-22da0e1421bd.jpg','辣子鸡丁,辣子鸡丁,永远的魂',1,'2022-05-27 09:49:16','2022-05-27 09:49:16');
INSERT INTO `dish` VALUES (9,'麻辣兔头',2,198.00,'2a2e9d66-b41d-4645-87bd-95f2cfeed218.jpg','麻辣兔头的详细制作,麻辣鲜香,色泽红润,回味悠长',1,'2022-05-27 09:52:24','2022-05-27 09:52:24');
INSERT INTO `dish` VALUES (10,'蒜泥白肉',2,98.00,'d2f61d70-ac85-4529-9b74-6d9a2255c6d7.jpg','多么的有食欲啊',1,'2022-05-27 09:54:30','2022-05-27 09:54:30');
INSERT INTO `dish` VALUES (11,'鱼香肉丝',2,38.00,'8dcfda14-5712-4d28-82f7-ae905b3c2308.jpg','鱼香肉丝简直就是我们童年回忆的一道经典菜,上学的时候点个鱼香肉丝盖饭坐在宿舍床上看着肥皂剧,绝了!现在完美复刻一下上学的时候感觉',1,'2022-05-27 09:55:13','2022-05-27 09:55:13');
INSERT INTO `dish` VALUES (12,'麻辣水煮鱼',2,148.00,'1fdbfbf3-1d86-4b29-a3fc-46345852f2f8.jpg','鱼片是买的切好的鱼片,放几个虾,增加味道',1,'2022-05-27 09:58:15','2022-05-27 09:58:15');
INSERT INTO `dish` VALUES (13,'鱼香炒鸡蛋',2,20.00,'0f252364-a561-4e8d-8065-9a6797a6b1d3.jpg','鱼香菜也是川味的特色。里面没有鱼却鱼香味',1,'2022-05-27 09:59:06','2022-05-27 09:59:06');
INSERT INTO `dish` VALUES (14,'脆皮烧鹅',3,128.00,'e476f679-5c15-436b-87fa-8c4e9644bf33.jpeg','“广东烤鸭美而香,却胜烧鹅说古冈(今新会),燕瘦环肥各佳妙,君休偏重便宜坊”,可见烧鹅与烧鸭在粤菜之中已早负盛名。作为广州最普遍和最受欢迎的烧烤肉食,以它的“色泽金红,皮脆肉嫩,味香可口”的特色,在省城各大街小巷的烧卤店随处可见。',1,'2022-05-27 10:20:27','2022-05-27 10:20:27');
INSERT INTO `dish` VALUES (15,'白切鸡',3,66.00,'9ec6fc2d-50d2-422e-b954-de87dcd04198.jpeg','白切鸡是一道色香味俱全的特色传统名肴,又叫白斩鸡,是粤菜系鸡肴中的一种,始于清代的民间。白切鸡通常选用细骨农家鸡与沙姜、蒜茸等食材,慢火煮浸白切鸡皮爽肉滑,清淡鲜美。著名的泮溪酒家白切鸡,曾获商业部优质产品金鼎奖。湛江白切鸡更是驰名粤港澳。粤菜厨坛中,鸡的菜式有200余款之多,而最为人常食不厌的正是白切鸡,深受食家青睐。',1,'2022-05-27 10:21:48','2022-05-27 10:21:48');
这里只是后端代码的增删改查的编写。。。。。。。。。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020116.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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