用Java动态创建print语句
我查询了一个数据库,得到了很多应该呈现给用户的信息。在数据库中,我有字段a、b、c、d和e。现在,用户应该能够指示哪些字段应该打印在屏幕上(即,用户可以选择仅查看从数据库检索的数据的子集)用Java动态创建print语句,java,database,Java,Database,我查询了一个数据库,得到了很多应该呈现给用户的信息。在数据库中,我有字段a、b、c、d和e。现在,用户应该能够指示哪些字段应该打印在屏幕上(即,用户可以选择仅查看从数据库检索的数据的子集) 我如何动态创建一个print语句,有时打印两个字段,有时打印四个字段,有时打印三个字段等等,这取决于用户需要什么?如果所有的艰苦工作都已经完成,您只需要打印一个结果集,那么它可以像连续调用System.out.print()一样简单,然后用\n结束该行。它可以嵌套在FOR循环中,因此如果您有一个int,其中包
我如何动态创建一个print语句,有时打印两个字段,有时打印四个字段,有时打印三个字段等等,这取决于用户需要什么?如果所有的艰苦工作都已经完成,您只需要打印一个结果集,那么它可以像连续调用
System.out.print()一样简单
,然后用\n
结束该行。它可以嵌套在FOR循环中,因此如果您有一个int
,其中包含要打印的字段数,只需迭代它们
在更复杂的情况下,如果您有一个完整的列表,其中一些字段被选中,而其他字段未被选中,那么您可以使用(稍微)粗糙的方法,如下所示:
...
String[] chosenFields = {"Field 1", "Field 2" /*, (et cetera) */};
for (int i = 0; i < numberOfFields; i++)
{
for (int j = 0; j < chosenFields.length; j++)
{
if (fieldsName[i].equals(chosenFields[j]))
System.out.print(fields[i] + " ");
break;
}
}
System.out.println();
...
希望这能有所帮助。持续连接到
查询
会根据用户选择的字段形成有效的SQL语句。希望对其进行一些修改,以便只打印某些字段,将对您有所帮助。打印查询的System.out.println()
调用大约向下三分之二是一个很好的工作场所。打开或关闭可选值的自然方式是单选按钮。用于5个字段,即5个单选按钮的数组
StringBuffer sb = new StringBuffer (5 * 10);
for (int i = 0; i < 5; ++i)
if (rb[i])
s.append (field[i]).append (" ");
StringBuffer sb=新的StringBuffer(5*10);
对于(int i=0;i<5;++i)
if(rb[i])
s、 追加(字段[i])。追加(“”);
也许您最好只从数据库中选择感兴趣的列?然后,虚拟列很有用:
sql = new StringBuffer ("SELECT 1 "); // the dummy-column
for (int i = 0; i < 5; ++i)
if (rb[i])
sql.append (", ").append (fieldname[i]);
sql=newstringbuffer(“选择1”);//虚拟柱
对于(int i=0;i<5;++i)
if(rb[i])
sql.append(“,”).append(字段名[i]);
我不是java爱好者,但我想你把问题复杂化了!你是说把这些打印到屏幕上吗?正如塔伦所说,我认为你把这件事复杂化了。是的,我说的是在屏幕上打印。数据库中的每个字段都应该有一列。但是用户应该能够“过滤”数据并说他只对某些列感兴趣。然后只打印那些。顺便说一句,我假设当你想创建一个可变长度的打印语句时,你的意思是将可变数量的数据打印到一行?谢谢!我要试一试!
sql = new StringBuffer ("SELECT 1 "); // the dummy-column
for (int i = 0; i < 5; ++i)
if (rb[i])
sql.append (", ").append (fieldname[i]);