У меня есть следующие сомнения: могу ли я каким-то образом использовать условный тернарный оператор в конкатенацию строк?Могу ли я использовать условный тернарный оператор в конкатенацию строк?
Я пытаюсь сделать что-то вроде этого:
String sql = "insert into TirConsolidatoPolizzaFondo "
+ "(Polizzaid, FondoID, isQuadraturaOk, ReteVendita, CodiceConferimento, PercentualeRendimentoDaInizioGestione, "
+ "DataInizioGestione, PercentualeRendimentoDaInizioAnno, DataInizioAnno, PercentualeRendimentoDaInizioTrimestre, "
+ "DataInizioTrimestre, DataCalcoloBF, ValoreNavBF, DataRiferimentoNavBF, ControvaloreFinaleBF, ValoreNavPUC, "
+ "DataRiferimentoNavPUC, ControvaloreFinalePUC, NumeroQuotePUC, DeltaControvaloreFinale, TIMESTAMP, "
+ "DataValutaUltimaOperazione, MsgPercentualeRendimentoDaInizioAnno, MsgPercentualeRendimentoDaInizioGestione, "
+ "MsgPercentualeRendimentoDaInizioTrimestre, isTirAnomalo, CodiceLineaBF) "
+ "values"
+ "(" +
qsTirPF.getPolizzaid() != null ? qsTirPF.getPolizzaid() : "null";
, что означает, что на первом стволе Струнный я хочу сцепить значение, вычисленное по:
qsTirPF.getPolizzaid() != null ? qsTirPF.getPolizzaid() : "null";
, но Eclipse, знак мне эту ошибку :
Type mismatch: cannot convert from Object&Comparable<?>&Serializable to String
Почему? Что не так? Как я могу исправить эту проблему?
Вы пытались поставить круглые скобки вокруг тройного выражения? '... + (qsTirPF.getPolizzaid()! = null? qsTirPF.getPolizzaid():« null »);' –
Также вы уверены, что хотите использовать конкатенацию строк для предоставления аргументов SQL-запроса? Обычно предпочтительным способом избежать Bobby Tables является использование PreparedStatement и использование его методов 'setXYZ'. – Pshemo
В качестве примечания, это 2016 год; сделайте себе одолжение и используйте подготовленные заявления, чтобы избежать потенциальных инъекций SQL. –