Есть ли у вас какой-либо доступ к MySQL, кроме как через JDBC - MySQL Administrator? Или командная строка?
OMG Ponies
У меня есть доступ к администратору mysql. однако требование таково. база данных mysql будет создаваться, изменяться, обновляться и т. д. с использованием mysql admin, но после этого все операции должны выполняться с помощью java.
silverkid
Лучше включать создание индекса в сценарии для создания базы данных, чем через JDBC, вероятно, после того, как вы уже могли их использовать.
Вот выдержка из executeUpdate()javadoc, которая уже сама по себе является ответом:
Выполняет заданный оператор SQL, который может быть оператором INSERT, UPDATE или DELETE или оператором SQL, который ничего не возвращает, например оператором SQL DDL.
для оператора удаления в репозитории весенней загрузки @Transactional поможет
Абхишек Чудекар,
1
codar.club/blogs/5cd7f06bec80a.html объясняет использование модифицирующих, транзакционных аннотаций и аннотаций запросов. Я решил свою проблему, используя: @Modifying(clearAutomatically = true) @Transactionalчуть выше аннотации @Query, определяющей мой запрос на удаление
user666
16
Используется executeUpdate()для выдачи операторов обработки данных. executeQuery()предназначен только для запросов SELECT (т.е. запросов, возвращающих набор результатов).
Этот код работает для меня: я устанавливаю значения с помощью INSERT и получаю LAST_INSERT_ID () этого значения с помощью SELECT; Я использую java NetBeans 8.1, MySql и java.JDBC.driver
try{StringQuery="INSERT INTO `stock`(`stock`, `min_stock`,
`id_stock`) VALUES ("+"\""+ p.get_Stock().getStock()+"\", "+"\""+ p.get_Stock().getStockMinimo()+"\","+""+"null"+")";Statement st = miConexion.createStatement();
st.executeUpdate(Query);
java.sql.ResultSet rs;
rs = st.executeQuery("Select LAST_INSERT_ID() from stock limit 1");
rs.next();//para posicionar el puntero en la primer fila
ultimo_id = rs.getInt("LAST_INSERT_ID()");}catch(SqlException ex){ ex.printTrace;}
Не ожидает ResultSet. Вместо этого он возвращаетResultSet .
BalusC
2
Я имею в виду, что он ожидает набора результатов из БД.
Neil N
2
@Modifying@Transactional@Query(value ="delete from cart_item where cart_cart_id=:cart", nativeQuery =true)publicvoid deleteByCart(@Param("cart")int cart);
Не забудьте добавить @Modifying и @Transnational перед @query. меня устраивает.
Чтобы удалить запись с некоторым условием, используя собственный запрос с JPA, важны упомянутые выше аннотации.
Здравствуйте! В качестве заголовка вопросы и ответы о переполнении стека должны быть написаны на английском языке (иначе они могут быть удалены и / или переведены Google). Ура! ( Hola! Como las cabezas para arriba, las preguntas y respuestas sobre Stack Overflow debe estar escrito en Inglés (de lo contrario corren el riesgo de destroyación y / o Google Traductor). ¡Salud! )
Ответы:
Для управления данными вам действительно нужно,
executeUpdate()
а неexecuteQuery()
.Вот выдержка из
executeUpdate()
javadoc, которая уже сама по себе является ответом:источник
При выполнении оператора DML вы должны использовать
executeUpdate
/execute
вместоexecuteQuery
.Вот краткое сравнение:
источник
Если вы используете весеннюю загрузку, просто добавьте аннотацию @Modifying.
источник
@Modifying(clearAutomatically = true) @Transactional
чуть выше аннотации @Query, определяющей мой запрос на удалениеИспользуется
executeUpdate()
для выдачи операторов обработки данных.executeQuery()
предназначен только для запросов SELECT (т.е. запросов, возвращающих набор результатов).источник
Для запроса на удаление - используйте
@Modifying
и@Transactional
перед@Query
подобным: -Это не даст
java.sql.SQLException: Can not issue data manipulation statements with executeQuery()
ошибки.источник
Вот для чего
executeUpdate
.Вот очень краткое описание разницы: http://www.coderanch.com/t/301594/JDBC/java/Difference-between-execute-executeQuery-executeUpdate
источник
Этот код работает для меня: я устанавливаю значения с помощью INSERT и получаю LAST_INSERT_ID () этого значения с помощью SELECT; Я использую java NetBeans 8.1, MySql и java.JDBC.driver
источник
executeQuery()
возвращаетResultSet
. Я не так хорошо знаком с Java / MySQL, но для создания индексов вам, вероятно, понадобится файлexecuteUpdate()
.источник
ResultSet
. Вместо этого он возвращаетResultSet
.Не забудьте добавить @Modifying и @Transnational перед @query. меня устраивает.
Чтобы удалить запись с некоторым условием, используя собственный запрос с JPA, важны упомянутые выше аннотации.
источник
Помимо executeUpdate () в круглых скобках, вы также должны добавить переменную для использования оператора SQL.
Например:
источник