若依框架从零开始

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
                },
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常示你的 Java 程序无法找到指定的类。可能的原因包括以下几点: 1. 类名或类路径有误。请检查类名和类路径是否正确,确保它们与代码中的一致。 2. 缺少依赖项。请确认程序所需的依赖项是否齐全,并且已经正确地加入到类路径中。 3. 编译错误。请检查程序代码是否存在语法错误或逻辑错误,这些错误可能会导致编译失败,从而无法生成正确的字节码文件。 如果无法确定错误原因,请尝试重新编译程序并查看详细的编译日志,以便更好地定位问题。 ### 回答2: 该错误示在运行Java应用程序时,无法找到或加载指定的主类com.ruoyi.RuoYiApplication。原因是Java虚拟机(JVM)无法从类路径中找到该类。 解决该错误的步骤如下: 1. 检查类路径:首先,确保在命令行或IDE中正确设置了类路径,将包含com.ruoyi.RuoYiApplication类的目录或JAR文件添加到类路径中。 2. 检查类的完整性:确认com.ruoyi.RuoYiApplication类的完整性没有被破坏。如果你使用了JAR文件,请检查JAR文件是否完整,或者是否存在损坏。 3. 检查类的包名:确认com.ruoyi.RuoYiApplication类的包名是否正确,包括大小写。请注意,Java对包名是敏感的。 4. 检查类是否存在:确认com.ruoyi.RuoYiApplication类是否存在于指定的目录或JAR文件中。你可以使用命令行或IDE提供的工具来查找该类。 5. 检查类的访问权限:确认你有权限访问com.ruoyi.RuoYiApplication类所在的目录或JAR文件。如果文件或目录是只读或被其他程序占用,可能会导致该错误。 6. 确认类的依赖项:如果com.ruoyi.RuoYiApplication类依赖其他类或JAR文件,确保这些依赖项也正确设置并在类路径中可用。 如果你完成了以上步骤仍然无法解决问题,可能需要重新编译和构建你的应用程序,或者检查应用程序的配置文件是否正确配置了主类。如果问题仍然存在,可以进一步调查可能导致该错误的其他因素。 ### 回答3: 这个错误明无法找到或加载名为com.ruoyi.RuoYiApplication的主类。这个错误通常是由于以下几个原因导致的: 1. 类路径错误:主类所在的路径没有正确设置,或者项目的依赖库没有正确添加到类路径中。可以检查一下类路径的设置和依赖库的引入情况。 2. 缺少依赖库:如果项目的依赖库缺少了必要的文件,也可能导致找不到主类。可以确保所有的依赖库都已正确引入,并且版本匹配。 3. 类名拼写错误:检查一下主类名是否拼写正确,大小写是否匹配。Java是区分大小写的,主类名必须与文件名完全匹配。 4. 编译错误:如果项目中有编译错误,可能会导致主类无法正确编译生成。可以先检查一下项目中是否存在其他编译错误,并修复它们。 综上所述,这个错误的原因可能是类路径错误、缺少依赖库、类名拼写错误或编译错误等。根据具体情况进行排查和修复即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值