![](/img/trans.png)
[英]Android Room Database: How to properly select a 'tableName' in the DAO @Query?
[英]SQL query to select tablename
我想獲取所有以_tbl結尾的數據庫表名,例如xyz_tbl,pqr_tbl等。在mysql中使用java.pls幫助我..當前,我的查詢檢索所有表名,但我首先想要以_tbl結尾的表名。 我的代碼是...
public List selectTable() {
List tableNameList= new ArrayList();
try {
DatabaseMetaData dbm = c.conn.getMetaData();
String[] types = {"TABLE"};
c.rs = dbm.getTables(null, null, "%", types);
while (c.rs.next()) {
tableNameList.add(c.rs.getString("TABLE_NAME"));
}
} catch(Exception e) {
System.out.println(e.toString());
}
return tableNameList;
}
您可以使用mysql查詢
show tables from tablename like '%_tbl';
您是否嘗試過使用其他表格名稱模式?
您可以嘗試以下方法:-
c.rs = dbm.getTables(null, null, "%_tbl", types);
我無法回復Rohit的帖子。 他的答案看起來正確。
如果對DatabaseMetaData的getTables方法的JDK文檔進行操作,則以下是簽名和文檔注釋。
ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern,
String[] types) throws SQLException
參數:
catalog-目錄名稱; 必須與存儲在數據庫中的目錄名稱匹配; “”檢索那些沒有目錄的內容; null表示不應使用目錄名稱來縮小搜索范圍
schemaPattern-模式名稱模式; 必須與存儲在數據庫中的架構名稱匹配; “”檢索那些沒有模式的文件; null表示不應使用架構名稱來縮小搜索范圍
tableNamePattern-表名稱模式; 必須與存儲在數據庫中的表名匹配
類型 -表類型的列表,必須包含從getTableTypes()返回的表類型的列表中才能包含; null返回所有類型
在這種情況下,應使用%_tbl
。
使用String.endsWith()方法檢查表名是否以“ _tbl”結尾。
例如在while循環中:
while (c.rs.next())
{
String tableName = c.rs.getString("TABLE_NAME");
if(tableName.endsWith("_tbl"))
{
tableNameList.add(c.rs.getString("TABLE_NAME"));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.