若依框架从零开始

1、注意事项:

1、mysql字段名称一律使用小写字母!,否则会出现问题
2、项目路径最好使用英文路径,中文是否会出现异常,未检验

2、前提:

安装好jdk、IDEA,配置好MAVEN、tomcat

3、部署项目

3.1、下载

前往Gitee下载页面(https://gitee.com/y_project/RuoYi (opens new window))下载解压到工作目录

3.2、导入

导入到IDEA,菜单 File -> open,然后选择 解压后的文件夹,等待

3.3、创建数据库

3.3.1、创建数据库

CREATE DATABASE 数据库ry;
更改数据库的编码规格为UTF-8mb4

CREATE DATABASE `ry` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
--以上语句不要用,还是使用utf8mb4吧
--2022-1-20更新

数据库创建用户

CREATE USER 'K001'@'%' IDENTIFIED BY 'K0001'
-- 用户名为K001,密码为K0001的远程用户
CREATE USER 'K001'@'localhost' IDENTIFIED BY 'K0001'
-- 用户名为K001,密码为K0001的本地用户

如果不小心设置成了本地用户,后期需要远程维护的时候,可以使用以下方法更改

-- 放开全部ip可以访问
GRANT ALL PRIVILEGES ON *.* TO 'K001'@'%' IDENTIFIED BY 'K0001' WITH GRANT OPTION

-- 放开指定IP
GRANT ALL PRIVILEGES ON *.* TO 'K001'@'1.1.1.1' IDENTIFIED BY 'K0001' WITH GRANT OPTION

-- 刷新一下
FLUSH PRIVILEGES 

3.3.2、数据库授权

授权,没有授权启动不了

grant all on 数据库ry.* to '用户'@'localhost' identified by '密码';

3.3.3、建表等

运行项目里面的两个sql文件,顺序有没有关系没有注意,目前是以下运行顺序
ry_20210924.sql
quartz.sql

3.4修改配置文件

数据库的账号、密码、改登录账号与密码等

3.4、运行项目

打开项目运行com.ruoyi.RuoYiApplication.java,出现如下图表示启动成功。
在这里插入图片描述
浏览器中输入网址:http://localhost/index,登录项目

4、项目开发

4.1单表的增删改查

使用代码生成器进行开发,已经解决,具体内容等待整理

4.2联表的增删改查

主要是使用视图的方法

-- 创建视图的语法是
CREATE VIEW  视图名 AS  (SELECT语句)

联表的时候是可以读取到原先表格的注释的,注释重复的情况可以在界面上更改
联表最好不要重新相同的字段结果出来
2022-1-21联表的查询已经可以做出来了

4.3页面按钮的增加【未研究出来】

前端后端不知道怎么修改
举例如下:
功能要求:
在这里插入图片描述


/**
 * 物料管理Controller
 * 
 * @author ruoyi
 * @date 2022-01-19
 */
@Controller
@RequestMapping("/system/goods")
public class LcGoodsController extends BaseController
{
    private String prefix = "system/goods";

    @Autowired
    private ILcGoodsService lcGoodsService;

    @RequiresPermissions("system:goods:view")
    @GetMapping()
    public String goods()
    {
        return prefix + "/goods";
    }

    /**
     * 查询物料管理列表
     */
    @RequiresPermissions("system:goods:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(LcGoods lcGoods)
    {
        startPage();
        List<LcGoods> list = lcGoodsService.selectLcGoodsList(lcGoods);
        return getDataTable(list);
    }

    /**
     * 导出物料管理列表
     */
    @RequiresPermissions("system:goods:export")
    @Log(title = "物料管理", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(LcGoods lcGoods)
    {
        List<LcGoods> list = lcGoodsService.selectLcGoodsList(lcGoods);
        ExcelUtil<LcGoods> util = new ExcelUtil<LcGoods>(LcGoods.class);
        return util.exportExcel(list, "物料管理数据");
    }

    /**
     * 新增物料管理
     */
    @GetMapping("/add")
    public String add()
    {
        return prefix + "/add";
    }

    /**
     * 新增保存物料管理
     */
    @RequiresPermissions("system:goods:add")
    @Log(title = "物料管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(LcGoods lcGoods)
    {
        return toAjax(lcGoodsService.insertLcGoods(lcGoods));
    }


    /**
     * 复制新增物料管理  todo 复制新增功能未完成
     */
//    @RequiresPermissions("system:goods:copyAdd")
//    @GetMapping("/copyAdd/{id}")
//    public String copyAdd(@PathVariable("id") Integer id, ModelMap mmap)
//    {
//        LcGoods lcGoods = lcGoodsService.selectLcGoodsById(id);
//        mmap.put("lcGoods", lcGoods);
//        return prefix + "/edit";
//    }


    /**
     * 新增保存物料管理  todo 复制新增功能未完成
     */
//    @RequiresPermissions("system:goods:copyAdd")
//    @Log(title = "复制新增物料", businessType = BusinessType.INSERT)
//    @PostMapping("/add")
//    @ResponseBody
//    public AjaxResult copyAddSave(LcGoods lcGoods)
//    {
//        return toAjax(lcGoodsService.insertLcGoods(lcGoods));
//    }



    /**
     * 修改物料管理
     */
    @RequiresPermissions("system:goods:edit")
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Integer id, ModelMap mmap)
    {
        LcGoods lcGoods = lcGoodsService.selectLcGoodsById(id);
        mmap.put("lcGoods", lcGoods);
        return prefix + "/edit";
    }

    /**
     * 修改保存物料管理
     */
    @RequiresPermissions("system:goods:edit")
    @Log(title = "物料管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(LcGoods lcGoods)
    {
        return toAjax(lcGoodsService.updateLcGoods(lcGoods));
    }

    /**
     * 删除物料管理
     */
    @RequiresPermissions("system:goods:remove")
    @Log(title = "物料管理", businessType = BusinessType.DELETE)
    @PostMapping( "/remove")
    @ResponseBody
    public AjaxResult remove(String ids)
    {
        return toAjax(lcGoodsService.deleteLcGoodsByIds(ids));
    }
}

前端页面

     <div class="btn-group-sm" id="toolbar" role="group">
                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:goods:add">
                    <i class="fa fa-plus"></i> 添加
                </a>
                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:goods:edit">
                    <i class="fa fa-edit"></i> 修改
                </a>
                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:goods:remove">
                    <i class="fa fa-remove"></i> 删除
                </a>
                <a class="btn btn-primary single disabled" onclick="$.operate.copyAdd()" shiro:hasPermission="system:goods:copyAdd">
                    <i class="fa fa-edit"></i> 复制新增【此处新增】
                </a>
                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:goods:export">
                    <i class="fa fa-download"></i> 导出
                </a>
            </div>
            <div class="col-sm-12 select-table table-striped">
                <table id="bootstrap-table"></table>
            </div>
        </div>
    </div>
    <th:block th:include="include :: footer" />
    <script th:inline="javascript">
        var editFlag = [[${@permission.hasPermi('system:goods:edit')}]];
        var removeFlag = [[${@permission.hasPermi('system:goods:remove')}]];
        var prefix = ctx + "system/goods";

        $(function() {
            var options = {
                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                createUrl: prefix + "/copyAdd/{id}",【此处新增,有问题,需要调整】
                exportUrl: prefix + "/export",
                modalName: "物料管理",
                columns: [{

5、常见问题的解决

5.1、如何新增一个页面

文件路径
\ruoyi-admin\src\main\resources\templates\system\quotetem*quotetem.html*

ctrl中的设置

菜单中的设置
菜单类型:目录代表着他的下一级才是页面
上级菜单:点击按钮选择
菜单名称:界面上显示的
请求大致:【/system/quotetem】—与xxxxx中的内容对应
打开方式:/
权限表示:权限控制的功能吧
在这里插入图片描述

5.1、如何新增一个页面

6、等待研究

6.1、验证码问题

验证码肉眼不容易识别,未研究出来如何更改其字体未端端正正的字体
如果只是内部使用的话,如何去除验证码,未研究出来
目前已经暂不使用验证码了,通过配置

6.2、去除多余菜单

若依官网、示例演示如何去除未研究出来
在这里插入图片描述

6.2、下拉选项的设置、按钮状态切换标签的设置

6.3、若依系统首页,这个网页标题与图标如何修改

在这里插入图片描述

7、其余

7.1初学的加QQ群:交流交流

7.2.跨电脑的同步

7.2.1、数据库的同步

电脑在一起使用Navicat同步
电脑不在一起的情况

方法一【推荐】

备份数据
在这里插入图片描述
恢复数据
在这里插入图片描述

方法二
备份阶段
备份有更新的表的建表sql

使用Navicat导出表的数据
合并所有sql为一个文件

恢复阶段
获取所有表的名称

SELECT 

清空本地表的所有数据

truncate1 ;
truncate2 ;

有更新的表重新建表

运行合并的sql文件,注意有时候运行不会成功

--查看运行后的数据量
SELECT 
   TABLE_NAME, DATA_LENGTH, INDEX_LENGTH,( DATA_LENGTH + INDEX_LENGTH ) AS length, 
   TABLE_ROWS,
   concat( round(( DATA_LENGTH + INDEX_LENGTH )/ 1024 / 1024,3),'MB') AS total_size 
FROM
	information_schema.TABLES 
WHERE
	TABLE_SCHEMA = 'ry' 
ORDER BY
	TABLE_ROWS

方法三**【还不会】**

7.2.2、项目的同步

方法一、SVN同步【推荐】
毕竟只有几十兆,免费空间100M够了

方法二、复制替换的方法【不推荐
如果是知道什么文件修改的话,需要找出修改的文件,找到位置,替换
如果不确定的话,整个项目的话,重新打开的是后IDEA需要重新加载MAVEN的包什么的,费时间

7.2.3、更改表格默认条数

全局位置
\ruoyi-admin\src\main\resources\static\ruoyi\js\ry-ui.js
在这里插入图片描述
单个页面位置

 $(function() {
            var options = {
                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                exportUrl: prefix + "/export",
                modalName: "材料",
                pageSize: 15, //更改默认的条数                手动添加此内容
                columns: [{
                    checkbox: true
                },
                {
                    field: 'id',
                    title: '主键',
                    visible: false
                },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值