zig*_*ggy 2 java sql oracle jdbc
我试图在java中构建一个动态的SQL查询(如下所示)
sqlStr = "Select * " +
"from " + tableName
if(tableName!=null){
if(tableName.equals("Table1"){
sqlStr = sqlStr.concat("order by city desc");
}else if(tableName.equals("Table2"){
sqlStr = sqlStr.concat("order by country desc");
}else if(tableName.equals("Table3"){
sqlStr = sqlStr.concat("order by price desc");
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是添加一个最终的'else'语句,该语句将根据表中是否包含名为'custID'的列来对查询进行排序.将有几个表与该列,所以我想按custID排序那些列.(而不是为每个具有该列名的表提供数百个额外的if语句.)这可能吗?我见过人们使用'解码'功能,但我不知道如何在这里使用它.
使用DatabaseMetaData获取表信息.
您可以使用getTablexxx()和getColumnxx()方法获取表信息.
Connection conn = DriverManager.getConnection(.....);
DatabaseMetaData dbmd = conn.getMetaData();
dbmd.getxxxx();
Run Code Online (Sandbox Code Playgroud)
注意:您在代码前面的代码中忘记了空格ORDER BY.
| 归档时间: |
|
| 查看次数: |
1469 次 |
| 最近记录: |