Я делаю пакетную вставку в таблицу MySQL:
insert into table1 (field1, field2) values("aa@gmail.com", "f2 value"), ("cc@gmail.com", "another f2 here");
, выдавая ошибку для символа '@' в значении String:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования значений 'вставка в покупателей (field1, field2) (' aa @ 'в строке 1 на sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) на солнце.refle.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lanst.reflect.Conjj..Util.handleNewInstance (Util.java:425) в com.mysql.jdbc.Util.getInstance (Util.java:408) в com.mysql.jdbc.SQLError.createSQLException (SQLError.java:943) в com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3970) по адресу com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3906) по адресу com.mysql.jdbc.MysqlIO.sendCommand.jysqlqljlqljlqljmqjjmqqmjjq: Mysql: Mysq.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:2677) на com.mysql.jdbc.ConnectionImpl.execSQL (ConnectionImpl.java:2549) на com.mysql.jdbc.PreparedStatement.executeInternal (PreparedStatement.java:1861) по адресу com.mysql.jdbc.PreparedStatement.executeUpdateInternal (PreparedStatement.java:2073) по адресу com.mysql.jdbc.PreparedStatement.executeUpdateInjj.jjjjjjjjjjjp ().PreparedStatement.executeLargeUpdate (PreparedStatement.java:5098) в com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.java:1994)
Как я могу обойти это - есть некоторыехарактер для JDBC, чтобы работать это?
Примечание. Мне известно о пакетном выполнении JDBC.Я ищу решение для вышеупомянутого - если есть:
pStat.addBatch();
pStat.executeBatch();
TIA.
Примечание: Приведенный выше запрос на вставку прекрасно работает непосредственно на MySQL без промежуточного JDBC.Также обратите внимание: это не проблема, когда JDBC сам устанавливает параметр с помощью pStat.getString("aa@gmail.com");
- таким образом, пакетное выполнение является решением.