首页 > 编程知识 正文

qsqldatabase open失败,memento database

时间:2023-05-06 11:11:08 阅读:61836 作者:255

本地代码

//表中的所有字段privateliststringgetfieldlistfromconnectmetadata (@ nonnulldatabaseconnectmodelmodel, string tablename (try ) classtring connection connection=driver manager.getconnection (model.geturl ),model.getUsername model.getPassword ) ) resultset RS=connection.get metadata (.get columns (null,null,tableName,null ); liststringfieldnamelist=lists.new ArrayList (; while(RS.next ) ) fieldnamelist.add ) RS.getstring('column_name ' ); }返回字段名称; } catch (classnotfoundexception|sqlexception e ) thrownewruntimeexception (e.getmessage ),e ); }//库中的所有表privateliststringgettablelistfromconnectmetadata (@ nonnulldatabaseconnectmodelmodel ) try ) class.forname a nager.getconnection (model.geturl )、model.getusername (model.get password ) ) resultset RS=connection.get memet liststringtablenamelist=lists.new ArrayList (; while(RS.next ) ) tablenamelist.add ) RS.getstring('table_name ' ); }返回表名称列表; } catch (classnotfoundexception|sqlexception e ) thrownewruntimeexception (e.getmessage ),e ); }

返回的字段列和表是重复的

DatabaseMetaData .getTables ()方法常用于检索数据库中的所有表信息。

但是,在尝试获取本地数据库db_test的表信息时发生了错误。

解决方案 mysql8.0的驱动程序在5.5之前默认为nullCatalogMeansCurrent属性为true,8.0为false,是官方网站的链接目标。 因此,DatabaseMetaData.getTables ()加载了所有无关的表。

解决方法是在jdbc创建连接的url后添加nullCatalogMeansCurrent=true

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。