Я использую BufferedWriter для отправки данных в базу данных, (я знаю, что это не совсем то, для чего она предназначена ... не спрашивайте. В основном мне нужно войти в базу данных, но буферизировать данные, чтобы мы моглине заканчивайте с большим узким местом), и я сталкиваюсь с проблемой, что писатель разбивает данные в неудобных местах (как в середине инструкции вставки), который вызывает ошибки очевидно.Есть ли способ заставить писателя отправлять только полные куски данных?или все, что я могу сделать, просто позвонить .write и посмотреть, что произойдет?(Установка размера байта не поможет, потому что есть много опций для различных типов операторов вставки)
//insertArray is a char[] that's being sent to BufferedWriter's .write method.
//It contains the information for one record. (I know this is not ideal because of sql injection,
//and I would prefer to send a prepared statement, but I'm using SQLlite which apparently doesn't support conversion of prepared statements to strings).
private void callInsert() {
try {
writer.write(insertArray, 0, insertArray.length);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Затем метод .write в моем классе открывает соединение с базой данных и отправляет любые данные, которые он имеет, как единое целое.длинное утверждение: как это:
insert into students(fname, lname, id) values(('Bob', 'Green', '5), ('Jake', 'Klein', '7'));
В идеале я хотел бы обрезать данные после последней полной вставки перед записью, а затем добавить остальные к следующей записи.Моя текущая проблема заключается в том, что я мог бы получить следующее:
insert into students(fname, lname, id) values(('Bob', 'Green', '5), ('Jake', 'Klein
, если BufferedWriter решит разбить его там.