我想从数据库里面导出一些字段的value,我写了这样一个函数DateBaseToExcel(String tableName,String[] ziduanName),这里面第一个参数是表名称,第二个是其中的一些字段名,用户可以根据自己的需求来导出一些字段,譬如说:"Path","CDTag","Path","CDTag","FeatureState","IsTag","IndexNo","OriginPath","MediaType"等,然后有的用户只需要"Path","CDTag",而有的用户需要"Path","IsTag","IndexNo","OriginPath",也就是说导出的列数也不固定,然后我在那个函数体里面怎样来写SQL语句呢,我们可以根据用户输入字符串数组求的数组的长度为length,然后SELECT ? FROM '" + tableName + "' "这一部分怎么写?在线等
if (ziduanName != null ) {
for (int i=0; i < ziduanName.length;i++ ) {
fields += fields +",";
if (i == ziduanName.length) {
fields += fields +",";
}
}
}StringBuffer sb = new StringBuffer("select "+ fields +" from table_name .........." );
你还可以做个数据字典,用于记录某个表需要导出某个字段,这样就可以动态的实现了
private static void DateBaseToExcel(String tableName, String[] ziduanName) { String sqlString = "select * from " + tableName;
String colName = "";
for (int i = 0; i < ziduanName.length; i++) {
if (i == ziduanName.length - 1)
colName = colName + ziduanName[i];
else
colName = colName + ziduanName[i] + ",";
} sqlString = sqlString.replace("*", colName);
System.out.println(sqlString); }
但我不太同意这种做法。
我觉得:可以全部查找出来做成一个User对象(假设),然后根据用户用到不同的列,返回给他User1,User2...
我的方法是经过测试了的。