|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
Excellion : 35 Новичок
|
Янв 05, 2012 15:46 |
|
|
Вообщем без вашей помощи опять не обойтись... =(
Есть JTextArea , JButton. в JTextArea вписываю sql запрос. JButton - служит как кнопка "выполнить"
Действие кнопки:
| Код: |
bt.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
sqlman.sendSqlToDataBase(ta.getText());
}
});
} |
| Код: |
package com;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import database.DatabaseFactory;
public class SqlManager
{
public void sendSqlToDataBase(String sql)
{
try
{
Connection con = DatabaseFactory.getInstance().getConnection();
PreparedStatement preparedstatement = con.prepareStatement(sql);
preparedstatement.execute();
con.close();
}
catch(SQLException sqlexception)
{
System.out.println("ERROR: "+ sqlexception.getMessage());
}
}
} |
вообщем вбиваю к примеру в JTextArea запросик:
INSERT INTO `test` VALUES (111111, 2222222);
Кликаю кнопку "выполнить" (JButton) все классно в базу добавилось.
Вбиваю в JTextArea более одного запроса к примеру вот так:
INSERT INTO `test` VALUES (111111, 2222222);
INSERT INTO `test` VALUES (222222, 1111111);
выбивает ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `test` VALUES (222222, 1111111)' at line 2
Как решить это проблему ? |
|
|
|
 |
masyan : 920 Supreme moderator
|
Янв 05, 2012 16:08 |
|
|
| ну атак он у вас как один запрос выполняется. Для выполнения вам надо парсить и для каждого вызывать. Или там есть что то типа ..Batch которые принимает список команд (точно не помню, но что то такое вроде было) |
|
|
|
 |
Excellion : 35 Новичок
|
Янв 05, 2012 16:29 |
|
|
|
|
|
|
 |
Ardatov : 10 Новичок
|
Янв 05, 2012 16:40 |
|
|
| Разбейте текст из JTextArea по строкам, затем для каждой строки используйте новый запрос. |
|
|
|
 |
Excellion : 35 Новичок
|
Янв 05, 2012 16:44 |
|
|
уже думал об этом, но вот как Разбить по строкам не могу понять...
Как разбить на строки и потом получить содержимое определенной строки ? |
|
|
|
 |
masyan : 920 Supreme moderator
|
Янв 05, 2012 16:46 |
|
|
|
|
|
|
 |
Ardatov : 10 Новичок
|
Янв 05, 2012 17:23 |
|
|
| Excellion писал(а): |
уже думал об этом, но вот как Разбить по строкам не могу понять...
Как разбить на строки и потом получить содержимое определенной строки ? |
Как вариант можно использовать StringTokenizer:
| Код: |
String text = myTextArea.getText();
StringTokenizer st = new StringTokenizer(text, ";");
while (st.hasMoreTokens()) {
String query = (st.nextToken() + ";").trim();
myStatement.executeUpdate(query);
} |
|
|
|
|
 |
Excellion : 35 Новичок
|
Янв 05, 2012 17:28 |
|
|
Спасиб всем за помощь!
Использовал split |
|
|
|
 |
Excellion : 35 Новичок
|
Янв 05, 2012 18:11 |
|
|
Еще 1 вопросик..
так у меня выводит сообщение если произошла ошибка...
| Код: |
catch(SQLException sqlexception)
{
System.out.println("ERROR: "+ sqlexception.getMessage());
} |
а как вывести ответ от мускуля о том что он сделал с запросом ?
типо вот такого как через консоль мускуля
| Код: |
| Query OK, 1 row affected |
|
|
|
|
 |
masyan : 920 Supreme moderator
|
Янв 05, 2012 18:16 |
|
|
| посмотрите что возвращает метод который выполняет запрос у вас в коде |
|
|
|
 |
Ardatov : 10 Новичок
|
Янв 05, 2012 18:28 |
|
|
| Excellion писал(а): |
Еще 1 вопросик..
так у меня выводит сообщение если произошла ошибка...
| Код: |
catch(SQLException sqlexception)
{
System.out.println("ERROR: "+ sqlexception.getMessage());
} |
а как вывести ответ от мускуля о том что он сделал с запросом ?
типо вот такого как через консоль мускуля
| Код: |
| Query OK, 1 row affected |
|
В документации есть все ответы на ваши вопросы.
Метод int executeUpdate(String sql) возвращает количество вставленных, удаленный или обновленных строк или 0 если запрос не возвращает ничего. Про то что при неудачном запросе метод возвращает -1 ничего не сказано, но попробуйте. |
|
|
|
 |
Excellion : 35 Новичок
|
Янв 05, 2012 19:14 |
|
|
это немного не то
к примеру команда:
show variables like 'max_connections';
должна вывести примерно вот такое:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 700 |
+-----------------+-------+
1 row in set (0.00 sec) |
|
|
|
 |
Ardatov : 10 Новичок
|
Янв 05, 2012 19:22 |
|
|
| Excellion писал(а): |
это немного не то
к примеру команда:
show variables like 'max_connections';
должна вывести примерно вот такое:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 700 |
+-----------------+-------+
1 row in set (0.00 sec) |
То есть вы хотите получить результат запроса? |
|
|
|
 |
Excellion : 35 Новичок
|
Янв 05, 2012 19:26 |
|
|
|
|
|
|
 |
Ardatov : 10 Новичок
|
Янв 05, 2012 20:16 |
|
|
| Тогда для вашего Statement'a используйте метод getResultSet() и его метаданные. |
|
|
|
 |
|
|
Страница 1 из 2 На страницу 1, 2 След. |
Список форумов
-> Работа с базами данных |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|