Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use a tablename variable for a java prepared statement insert [duplicate]

I am using a java PreparedStatment object to construct a series of batched INSERT queries. The query statement is of the format...

String strQuery = "INSERT INTO ? (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);"; 

...so both field values and the tablename are variables (ie. I have multiple tables with the same column format of which each insert will be directed to a different one). I can get the executes to work if I remove the "?" tablename variable and hard code but each prepared statement will be inserted into a different table so needs to remain a variable I populate immediately prior to executing the batch query using...

stmt.setString(1, "tableName1"); 

How can I let this be a dynamic variable please?

like image 837
ForestSDMC Avatar asked Jul 03 '12 13:07

ForestSDMC


1 Answers

You can't. You need to contruct the sql with string concatenation/placeholder with String.format. prepared statement is for the column values not for table name.

like image 173
fmucar Avatar answered Sep 25 '22 17:09

fmucar