我正在創建一個項目,並創建了一個方法insertStatement()
,它創建了一個構造我的SQL插入語句的字符串緩衝區。那就是:使用StringBuffer構建更高效的SQL插入
private String insertStatement() {
StringBuffer sb = new StringBuffer(
"insert into CUSTOMER (NAME, NUMBER, CITY, STATE) values (");
sb.append("'" + this.custName + "',");
sb.append("'" + this.custNum + "',");
sb.append("'" + this.custCity + "',");
sb.append("'" + this.custState + ")");
return sb.toString();
}
我不知道是否有建立這個說法,而無需追加了'
在開始和',
在年底各行的更有效的方式。
該問題的一些更多詳細信息。我正在創建一個批處理作業,並且此方法將該語句作爲String返回,然後將填充一個Array List,該List將傳遞給ItemWriter,然後將該數據存儲到數據庫中。
是的,使用['PreparedStatement'](https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html),不要讓自己打開SQL注入。 – khelwood
有沒有理由不能使用諸如'PreparedStatement'之類的東西?然後你可以像'PreparedStatement pstmt = databaseConnection.prepareStatement(「insert into Customer(name,number,city,state)values(?,?,?,?)」);'然後替換爲pstmt.setString( 1,this.custName); etc – Orin
我沒有很多使用數據庫的經驗,所以我不知道'PreparedStatement'是一個選項!我會看一看。 –