un7.10:在IDEA中使用若依框架实现增删改查功能。

2023-05-16

在java的世界中,有很多框架提供我们使用,今天我们就来讲一讲若依框架。

若依框架是一款非常便捷的框架,他相对于spring boot框架而言,显得更为简单,更为便捷,比如:我们在若依框架中再也不用写分页了,它会在AjaxResult中自动生成,而我们只需要继承就可以了,接下来我就来为大家演示一遍如何使用若依框架写出一套完整的增删改查,实现增删改查功能。

所需软件:IDEA

一、我们需要弄明白若依框架的基本组成。

1、需要注意的是,我们只需要用到两个包,一个是ruoyi-admin文件,这个包里边是专门用来写控制器controller的,也会有一些资源,比如application.xml。

2、还有一个是ruoyi-system文件,这个里边是用来写实体类、dao、service层的。

 二、我们需要在com.ruoyi下创建一个包,我的叫basic,然后在basic中创建三个包,我的叫domain、mapper、service。

1、在domain中写好id,channelName、isShow、upadateTime,代码如下:

package com.ruoyi.basic.domain;

import com.ruoyi.common.core.domain.BaseEntity;

public class Channel extends BaseEntity {
    private String id;//32位主键id
    private String channelName;//栏目名称
    private Integer isShow;//是否显示

    public String getId() {
        return id;
    }

    public String getChannelName() {
        return channelName;
    }

    public Integer getIsShow() {
        return isShow;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    public void setIsShow(Integer isShow) {
        this.isShow = isShow;
    }
}

2、在接口中声明方法,代码如下:

package com.ruoyi.basic.mapper;

import com.ruoyi.basic.domain.Channel;

import java.util.List;

public interface ChannelMapper {
    /**
     * 添加栏目
     * @param channel
     * @return
     */
    public int insertChannel(Channel channel);
    /**
     * 根据id删除栏目
     */
    public int deleteChannelById(String id);
    /**
     * 修改栏目
     */
    public int updateChannel(Channel channel);
    /**
     * 根据id查看栏目
     */
    public Channel selectChannelById(String id);
    /**
     * 查看栏目列表,根据条件
     */
    public List<Channel> selectChannelList(Channel channel);
}

3、在xml文件中写sql语句,这个在上一篇博客中有写到过,可以在上一篇博客中copy,也可以直接从下面的代码copy,代码如下:

<?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.ruoyi.basic.mapper.ChannelMapper">
    <resultMap id="ChannelResult" type="Channel">
        <result property="id" column="id"></result>
        <result property="channelName" column="channel_name"></result>
        <result property="isShow" column="is_show"></result>
        <result property="updateTime" column="update_time"></result>
    </resultMap>
    <sql id="selectChannelVO">
        select id,channel_name,is_show,update_time from cms_channel
    </sql>
    <select id="selectChannelById" parameterType="String" resultMap="ChannelResult">
        <include refid="selectChannelVO"></include>
    </select>
    <select id="selectChannelList" parameterType="Channel" resultMap="ChannelResult">
        <include refid="selectChannelVO"></include>
    <where>
    <if test="channelName != null and channelName != ''"> and channel_name like concat (#{channelName}, '%')</if>
    <if test="isShow != null">and is_show =#{isShow}</if>
    </where>
    </select>

    <insert id="insertChannel" parameterType="Channel">
        insert into cms_channel(id,channel_name,is_show,update_time)
        values
               (#{id},#{channelName},#{isShow},#{updateTime})
    </insert>

    <delete id="deleteChannelById" parameterType="String">
        delete from cms_channel where id=#{id}
    </delete>

    <update id="updateChannel" parameterType="Channel">
        update cms_channel
        set channel_name=#{channelName},is_show=#{isShow},update_time=#{updateTime}
        where id=#{id}
    </update>
</mapper>

4、在service接口中声明方法,和mapper接口中的差不多,代码如下:

package com.ruoyi.basic.service;

import com.ruoyi.basic.domain.Channel;

import java.util.List;

public interface IChannelService {
    /**
     * 添加栏目
     * @param channel
     * @return
     */
    public int insertChannel(Channel channel);
    /**
     * 根据id删除栏目
     */
    public int deleteChannelById(String id);
    /**
     * 修改栏目
     */
    public int updateChannel(Channel channel);
    /**
     * 根据id查看栏目
     */
    public Channel selectChannelById(String id);
    /**
     * 查看栏目列表,根据条件
     */
    public List<Channel> selectChannelList(Channel channel);
}

5、在serviceImpl中实现,需要注意的是,添加的时候需要生成32位主键id,UUID默认生成的是36位,每四位位一组,每一组只见用“-”链接,我们需要用UUID里边的randomUUID方法,调用toString,然后用replace方法将“-”改为空,这样就成为32位了,代码如下:

package com.ruoyi.basic.service.impl;

import com.ruoyi.basic.domain.Channel;
import com.ruoyi.basic.mapper.ChannelMapper;
import com.ruoyi.basic.service.IChannelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.UUID;

@Service
public class ChannelServiceImpl implements IChannelService {

    @Autowired(required = false)
    private ChannelMapper channelMapper;
    @Override
    public int insertChannel(Channel channel) {
        //生成32位主键id
        String id = UUID.randomUUID().toString().replace("-","");
        channel.setId(id);
        return channelMapper.insertChannel(channel);
    }

    @Override
    public int deleteChannelById(String id) {
        return channelMapper.deleteChannelById(id);
    }

    @Override
    public int updateChannel(Channel channel) {
        return channelMapper.updateChannel(channel);
    }

    @Override
    public Channel selectChannelById(String id) {
        return channelMapper.selectChannelById(id);
    }

    @Override
    public List<Channel> selectChannelList(Channel channel) {
        return channelMapper.selectChannelList(channel);
    }
}

如此,我们ruoyi-system中的任务就完成了。

三、在ruoyi-admin中创建一个basic,再再basic中创建一个controller,在controller中新建一个ChannelController。

1、先注入接口,实现接口,再用@Autowired(required = false)容错,代码如下:

@Autowired(required = false)
    private IChannelService channelService;

2、我们先完成增删改,和spring boot框架的增删改差不多,只不过在ruoyi框架中,将分页器封装到了AjaxResult中了,所以需要返回的是AjaxResult而不是HttPResult,而且在AjaxResult中,自动判断,所以我们直接返回,把值放入就可以,所以若依的框架目前非常受欢迎。代码如下:

@PostMapping("/add")
    public AjaxResult add(Channel channel){
        int rows=channelService.insertChannel(channel);
        return toAjax(rows);//如果rows>0,成功
    }

    @PostMapping("/remove")
    public AjaxResult remove(String id){
        int rows=channelService.deleteChannelById(id);
        return toAjax(rows);//如果rows>0,成功
    }

    @PostMapping("/edit")
    public AjaxResult edit(Channel channel){
        int rows=channelService.updateChannel(channel);
        return toAjax(rows);//如果rows>0,成功
    }

3、查询一个id,查询一个id的时候,有两种方法进行查询。

a.调用service接口中的查询方法,将id放入,返回一个查询成功的值,代码如下:

         /*
        Channel =channel=channelService.selectChannelById(id);
        return AjaxResult.success(channel);
         */

b.直接返回一个成功的值,将查询的过程放入,代码如下:

return AjaxResult.success(channelService.selectChannelById(id));//如果rows>0,成功

查询一个的代码如下:

@GetMapping("/get_info")
    public AjaxResult get_info(String id){
        /*
        Channel =channel=channelService.selectChannelById(id);
        return AjaxResult.success(channel);
         */
        return AjaxResult.success(channelService.selectChannelById(id));//如果rows>0,成功
    }

4、和查询整个列表,需要注意的是,查询整个列表的时候有分页,所以需要有一个分页函数startPage();分页函数必须和select写在一起,否则的话无法查询成功,代码如下:

@GetMapping ("/list")
    public TableDataInfo list(Channel channel){
        startPage();//分页函数,注意:该函数必须和select查询写在一起,下面一定是查询,否则分页器无效
        List<Channel> channels = channelService.selectChannelList(channel);
        return getDataTable(channels);//如果rows>0,成功
    }

四、启动服务器,启动成功后页面如下:

 如此,我们便实现了如何用若依框架写出一套完整的增删改查了,分享到这里就结束了,希望能够帮到大家。

最后附上controller完整代码,完整代码如下:

package com.ruoyi.basic.controller;

import com.ruoyi.basic.domain.Channel;
import com.ruoyi.basic.service.IChannelService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/basic/channel")
public class ChannelController extends BaseController {
    @Autowired(required = false)
    private IChannelService channelService;

    @PostMapping("/add")
    public AjaxResult add(Channel channel){
        int rows=channelService.insertChannel(channel);
        return toAjax(rows);//如果rows>0,成功
    }

    @PostMapping("/remove")
    public AjaxResult remove(String id){
        int rows=channelService.deleteChannelById(id);
        return toAjax(rows);//如果rows>0,成功
    }

    @PostMapping("/edit")
    public AjaxResult edit(Channel channel){
        int rows=channelService.updateChannel(channel);
        return toAjax(rows);//如果rows>0,成功
    }

    @GetMapping("/get_info")
    public AjaxResult get_info(String id){
        //Channel =channel=channelService.selectChannelById(id);return AjaxResult.success(channel);
        return AjaxResult.success(channelService.selectChannelById(id));//如果rows>0,成功
    }

    @GetMapping ("/list")
    public TableDataInfo list(Channel channel){
        startPage();//分页函数,注意:该函数必须和select语句写在一起,下面一定是查询
        List<Channel> channels = channelService.selectChannelList(channel);
        return getDataTable(channels);//如果rows>0,成功
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

un7.10:在IDEA中使用若依框架实现增删改查功能。 的相关文章

随机推荐

  • 短视频文案怎么写?优质短视频文案写作技巧

    抖音短视频的质量仔细推敲起来确实会涉及到非常多的因素 xff0c 但真正决定你视频曝光的关键就是视频文案 xff0c 从剧情的铺垫 冲突 反转 xff0c 这在一定程度上能够吸引不少的观众 又或者小说开篇要么叙述宏达的故事背景 xff0c
  • Windows如何登录linux?

    1 用SSH命令 xff0c windows连接Linux xff08 1 xff09 ssh l root 192 168 5 15 xff08 2 xff09 ssh root 64 192 168 5 10 首次连接yes 即可 2
  • 单链表及其Java代码实现

    众所周知 xff0c 数组和链表都有内存寻址的功能 而数组元素的内存地址是连续的 xff0c 在寻址的时候很容易就可以找到下一个节点的值 而链表中元素的地址不是连续的 xff0c 那我们应该怎么去寻址呢 xff1f 假设现在计算机中有三个节
  • 创建Java Web项目并实现前后端交互

    目录 一 xff1a 使用工具 二 xff1a 创建Java Web项目 三 xff1a 编写代码 一 xff1a 使用工具 Eclipse 版本如下 xff1a 注 xff1a 不同版本的eclipse创建的项目基础目录可能会有所不同 二
  • 不坠华年(大一篇)

    秒速5厘米的樱花 这一年 xff0c 我遇到了想共度一生的人 xff0c 但是 从来没谈过恋爱的我根本不知道如何去追女孩子 xff0c 算了 xff0c 只要她快乐就好 xff0c 喜欢也不一定会在一起吧 xff0c 我总是说愿意等 xff
  • 数据结构之平衡有序二叉树

    我们知道引入树是为了提高数据存储 xff0c 读取的效率 可是有的二叉树并不能提高效率 xff0c 例如下面的这个树 这是一种极端的情况 xff0c 实际上它已经和链表一样了 xff0c 现在对它进行查询 xff0c 时间复杂度已经成为了O
  • 数据结构之B+树

    B 43 树结构特点 1 非叶子节点仅具有索引作用 xff0c 也就是说 xff0c 非叶子节点只能存储Key 不能存储value xff1b 2 树的所有叶节点构成一个有序链表 xff0c 可以按照key排序的次序依次遍历全部数据 B 4
  • MyBatis之Maven配置

    一 什么是Maven Maven是一个项目管理工具 xff0c 它包含了一个对象模型 一组标准集合 xff0c 一个依赖管理系统 和用来运行定义在生命周期阶段中插件目标和逻辑 二 下载配置相关版本的Maven 解压之后做相关的配置 1 配置
  • 数据库三大范式

    第一范式 xff08 1NF xff09 xff1a 在设计数据库时 xff0c 第一范式是对数据库的基本要求 满足第一范式的关系数据库的每一个域均为原子性的 xff0c 即数据库表的每一列都是不可分割的原子项 xff0c 而不能是集合 数
  • 数据库设计规范

    字符集 表格创建规范 所有的表都必须有这几个字段 删除一般都是软删除 xff0c 01删除标志 id等数字类型的字段不能只使用bigint用bigint unsigned xff08 为什么 xff1a xff09 当数据库中该属性添加un
  • git的版本控制流程以及特性分支之间怎样切换

    git xff1a 版本控制工具 xff08 例 xff1a 淘宝每次升级版本号加1 xff0c git来控制版本 xff09 命令 git pull xff1a 用于从远程更新存储库的本地版本 git commit xff1a 主要用于将
  • Android _ ViewBinding 与 Kotlin 委托双剑合璧,从思维图到基础再到深入

    lt LinearLayout tools viewBindingIgnore 61 true gt 3 2 创建绑定类 有三个创建绑定类的 API xff1a fun bind view View T fun inflate inflat
  • Android语音播报、后台播报、语音识别,android程序开发

    lt xml version 61 34 1 0 34 encoding 61 34 gt Android学习笔记总结 43 最新移动架构视频 43 大厂安卓面试真题 43 项目实战源码讲义 gt gt docs qq com doc DS
  • Spring框架介绍和使用

    一 Spring框架介绍 1 Spring简介 Spring是2003年兴起的一个Java轻量级框架 xff0c 它是为解决企业级开发的复杂性而创建的一个框架 它是一个分层的JavaSE EE Full Stack xff08 一站式 xf
  • SpringMVC注解开发运行原理

    服务器初始化过程 xff1a 1 xff1a 服务器初始化 加载继承 AbstractDispatcherServletInitializer即springmvc定义的代替web xml的 类初始化web容器 然后重写三个方法 xff1a
  • Unity3d游戏开发之C#开发(一)

    概要 撰写原因 xff1a 当今市面上关于Unity的教程的脚本几乎都是用js来当做教程语言的 xff0c 因为js比较容易学习 xff0c 所以如果是新学的朋友建议学js的版本 xff0c 如有特殊要求需要学习C 写脚本的话那么这系列文章
  • Spring配置文件详解

    Spring配置文件详解 1 spring的配置文件详解 Bean标签基本配置 用于配置对象让 spring 来创建的 默认情况下它调用的是类中的无参构造函数 如果没有无参构造函数则不能创建成功 属性 xff1a id 给对象在容器之中提供
  • [WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法

    相信来到这的人一定遇到这样的情况 xff0c 十分的难受 这里给大家总结了三种方法 xff0c 看看能不能解决大家的困难 1 代理问题 大家看看自己是不是因为正在搞东西 xff0c 列如 xff1a burpsuite xff0c 设置了代
  • 快速解决eclipse无法启动,一启动就报错,且整个项目显示红色感叹号和×

    eclipse中由于没有适配的server xff0c 所以需要用Tomcat来支持项目的运行 xff0c 也会出现各种各样的错误 xff0c 比如eclipse无法启动 xff0c 整个项目显示红色 xff01 和红色 该如何解决 xff
  • un7.10:在IDEA中使用若依框架实现增删改查功能。

    在java的世界中 xff0c 有很多框架提供我们使用 xff0c 今天我们就来讲一讲若依框架 若依框架是一款非常便捷的框架 xff0c 他相对于spring boot框架而言 xff0c 显得更为简单 xff0c 更为便捷 xff0c 比