Java 不带“";退出“;从字符串
我在很多时候使用java,但是我从来没有找到更好的concat字符串的“图形化”方法,当我编写SQL查询时,我对我所做的所有concat都有一个难以阅读的查询(我使用java类来表示db中所有列的名称值),比如Java 不带“";退出“;从字符串,java,string,sqlite,concatenation,Java,String,Sqlite,Concatenation,我在很多时候使用java,但是我从来没有找到更好的concat字符串的“图形化”方法,当我编写SQL查询时,我对我所做的所有concat都有一个难以阅读的查询(我使用java类来表示db中所有列的名称值),比如 public static class DBMetaData { static class LISTINO_TABLE { static final String TABLE_NAME = "listino"; static final String
public static class DBMetaData {
static class LISTINO_TABLE {
static final String TABLE_NAME = "listino";
static final String ID = "_ID";
static final String PRODUCT_NAME_KEY = "nome_prodotto";
static final String CODE_KEY = "codice";
static final String PRICE_KEY = "prezzo";
static final String ENABLE_KEY = "enable";
static final String PREZZO_VENDITA_KEY = "prezzo_vendita";
static final String RICAVO_KEY = "ricavo";
static final String NUMERO_COLLI_KEY = "num_colli";
static final String TIPO_COLLO_KEY = "tipo_collo";
static final String DATA_INSERIMENTO_KEY = "data_inserimento";
}
当我写查询时,我有这样的查询
String sql = "select *,lo." + DBMetaData.LISTINO_ORDINE_TABLE.QUANTITY_KEY + " as quant from " + DBMetaData.LISTINO_ORDINE_TABLE.TABLE_NAME +
" lo left join "+DBMetaData.OFFERTE_TABLE.TABLE_NAME + " o on lo."+ DBMetaData.LISTINO_ORDINE_TABLE.CODICE_ID + " = o." + DBMetaData.OFFERTE_TABLE.CODICE_ARTICOLO_KEY +
" left join "+DBMetaData.LISTINO_TABLE.TABLE_NAME + " l on lo."+DBMetaData.LISTINO_ORDINE_TABLE.CODICE_ID + "= l."+DBMetaData.LISTINO_TABLE.CODE_KEY +
" left join " + DBMetaData.INVENTARIO_TABLE.TABLE_NAME + " i on lo."+DBMetaData.LISTINO_ORDINE_TABLE.CODICE_ID + "= i."+DBMetaData.INVENTARIO_TABLE.CODE_KEY +
" where "+DBMetaData.LISTINO_ORDINE_TABLE.NUMBER_KEY + " = 0 order by "+DBMetaData.LISTINO_ORDINE_TABLE.QUANTITY_KEY + " DESC";
有更好的方法来编写查询吗?我知道我可以不用DBMetaData编写查询,但是如果我想在将来编辑一些东西,我必须重新编辑我所有的sql,使用这个类是我从android开始学习的一个实践,我正在使用它,但我不喜欢它:-)
有什么建议吗?tnx您可以使用
String.format
删除所有字符串连接的需要
例如:
String sql = String.format("select * from %s", TABLE_NAME);
您还可以使用ApacheCommons文本
最终映射值Map=newhashmap();
价值映射出售(“表名”、“表”);
//等等。。。
final String=“select*from${tableName}”;
最终字符串sql=newStringSubstitutor(valuesMap)。替换(字符串);
//“从表中选择*”
同意!这是我们能买到的最短的。!
final Map<String, String> valuesMap = new HashMap<>();
valuesMap.put("tableName", "Table");
//etc...
final String string = "select * from ${tableName}";
final String sql = new StringSubstitutor(valuesMap).replace(string);
//"select * from Table"