"org.h2.jdbc.JdbcSQLException: Table "FILE_INDEX" not found; SQL statement"

博主开发小项目MyEverythingPlus,实现命令行跨平台搜索功能,使用了Maven和H2数据库。开发中遇到两个问题,一是手残将表中变量类型整反,二是判断文件是否存在时逻辑有误,后请教大佬解决了问题。

最近在写一个小项目MyEverythingPlus,主要是实现一个命令行的跨平台搜索的功能。
贴上github链接:https://github.com/GLL1103/MyEverythingPlus.git

在项目中,用了Maven和H2数据库:
H2数据库的优点:

  • 非常快,开源,JDBC API
  • 嵌入式和服务器模式; 内存数据库
  • 基于浏览器的Console应用
  • 比较小,大约2MB的jar文件大小

在过程中,出现了下述BUG:
在这里插入图片描述
之前搜了很多解决方案,都没有解决我的问题,今天终于请教了大佬,解决了它。

  1. 手残党真的伤不起:
    之前跑过的sql语句因为我手残把表中的两个变量类型整反了(发现的时候内心是奔溃的),在这提醒大家平时敲代码细心些。
    2.修改前代码

    修改后代码

    注意:
    当程序执行到:File dbFile = new File(fileName);时,在系统中其实并没有真正的创建dbFile文件,而是在第一个写入时才会真正创建文件(有点像写时拷贝),所以当if中判断dbFile.isFile()时,会去系统中查找并判断其是不是文件,首先当其发现并不存在时,它并不会报错,而是返回false(坑坑坑)。所以条件一直不会满足,一直不会调用initDatabase()函数去初始化数据库。改成判断是否为目录问题就解决了(深呼一口气)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值