2012-12-02 25 views
2

我有一个已经用java编写的SQL select查询。现在我想选择更多的列。在这种情况下,我需要在from关键字的索引之前编写列名。 像这样 初始查询 -将字符串从一个索引插入另一个字符串到字符串之间的另一个索引

StringBuffer query; 
query = " Select name,age,dob from employee" 

新的查询应该像这个 -

query = "select name , age , dob,city from employee" 

为此,我试图query= query.insert(indexof(dob),"city");

但我认为这将改写。 我的问题归结为insert是否创建了足够的空间来插入字符串或覆盖较早的字符串? 请帮忙。

+0

什么是你想在这里做索引值?你想插入查询结果到'stringbuffer'或查询字符串吗?你是指存储一些“准备好的”陈述? – bonCodigo

+0

我想使用字符串缓冲区来建立一个查询。 –

+1

@Abhishekkumar,这是一个坏主意。你应该使用准备好的语句和一个库来为你建立它们。阅读有关SQL注入的所有信息,以了解为什么使用未准备好的未经过清理的查询很难编写出好的代码。 – tucuxi

回答

2

不是得到的dob索引值,得到的from

query= query.insert(original.indexOf("from"),"city "); 
+0

不是从这之后插入城市吗? –

+0

否 - indexOf返回它搜索的字符串的起始索引 – tucuxi

1

试试这个: -

StringBuffer query = new StringBuffer("Select name,age,dob from employee"); 
query.insert(query.indexOf("from"), "city "); 
相关问题