Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Java 8 не работает Statement.executeUpdate / 18 сообщений из 18, страница 1 из 1
05.09.2021, 08:59
    #40095317
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Добрый день.
Есть следующая ситуация:

1. Редактирование записей в СУБД MySQL (UPDATE SET) консоль

mysql -uroot -p
USE ies_ph0;
UPDATE `ies_ph0`.`cookie_sessions` SET `session`='7777rv654edfghjkmnbvfrtyuik' WHERE `username`='Ваня Сидоров';
SELECT session, username, userwrites FROM cookie_sessions;
----------------- в консоли все работает

2. код на java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
// класс обертка для контроля работоспособности класса SetDataToDB

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

public class MainApp {
	public static void main(String[] args) {

		String connectionURL = "jdbc:mysql://localhost:3306/ies_ph0?useSSL=false";
		String userName = "ies_ph0_user";
		String password = "Fgh678Rty";
		boolean isReady = false;
		String sqlCommand = "UPDATE cookie_sessions SET session='88888v654edfghjkmnbvfrtyuik' WHERE username='Ваня Сидоров'";

		isReady = RegJdbcDrv.isDrvRegisted("com.mysql.jdbc.Driver");

		if (isReady) {
			System.out.println("JDBC drv is reg"); // это так чиста для контроля
			
			//SetDataToDB setdata = new SetDataToDB();
			//setdata.insertData(connectionURL, userName, password, sqlCommand);
			
			SetDataToDB.insertData(connectionURL, userName, password, sqlCommand);
		}

		

	}
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
//  подключение к БД(таблица), редактирование указанной позиции

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.sql.SQLException;
import java.sql.DriverManager;

public class SetDataToDB {

	// method insertData
	public static void insertData(String connectionURL, String userName, String password, String sqlCommand) {
		try (Connection conn = DriverManager.getConnection(connectionURL, userName, password);
				Statement stmt = conn.createStatement()) {

			conn.setAutoCommit(false);  //??? не помогло
			stmt.executeUpdate(sqlCommand);
			conn.commit();  //???

			System.out.println("Database has been updated");
			System.out.println(stmt.toString());

		} catch (SQLException sqle) {
			System.err.println("method insertData: " + sqle);
			// call log + weboutput
		} // end method

	}
}



Результат:
Компиляция в норме:
javac -encoding UTF-8 -cp .; MainApp.java
java -cp .; MainApp

JDBC drv is reg
Database has been updated
com.mysql.jdbc.StatementImpl@41cf53f9

НО! нет никаких изменений в таблице

Вопрос: что не так. почему нет перезаписи в таблице. какой то мелкий косяк связанный с java8?

Заранее спасибо за ответы по ЗАДАННЫМ вопросам
...
Рейтинг: 0 / 0
05.09.2021, 09:35
    #40095319
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair,
Ловить надо все исключения. А не одного типа.
...
Рейтинг: 0 / 0
05.09.2021, 09:38
    #40095320
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair,
Ну и лог субд покажи. Не пропадай на неделю.
...
Рейтинг: 0 / 0
05.09.2021, 11:21
    #40095331
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Это - функция которая возвращает число update-нутых строк. Это число полезно отслеживать.

Код: sql
1.
stmt.executeUpdate(sqlCommand);
...
Рейтинг: 0 / 0
05.09.2021, 15:56
    #40095358
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
А где коммит после апдейта?
...
Рейтинг: 0 / 0
05.09.2021, 17:16
    #40095359
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
итак, жаба8 не может найти в БД "Ваня Сидоров", то есть кириллицу
а в консоли все находит и с heidisql то же

как такое понять? и где копать?

сборка БД

Код: plsql
1.
CREATE DATABASE ies_ph0 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;



сборка таблицы была:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
create table cookie_sessions
(
session VARCHAR(64) not null,
username    VARCHAR(32) not null,
userwrites  VARCHAR(32) not null,
primary key (session)
);



где тут ошибка?
...
Рейтинг: 0 / 0
05.09.2021, 19:25
    #40095367
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair,
попробуй такое
Код: java
1.
String connectionURL = "jdbc:mysql://localhost:3306/ies_ph0?useSSL=false?characterEncoding=UTF8&allowPublicKeyRetrieval=true&useUnicode=true";
...
Рейтинг: 0 / 0
05.09.2021, 20:01
    #40095368
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair
итак, жаба8 не может найти в БД "Ваня Сидоров", то есть кириллицу

Юнге не следует употреблять те-же слова что говорит боцман.
Надо сперва заслужить это право.

Смотри где ты ломаешь кодировку. Мест - много. Самое первое - исходный код.

Способов проверки - тоже много.
...
Рейтинг: 0 / 0
05.09.2021, 20:41
    #40095373
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
вадя
Pcrepair,
попробуй такое
Код: java
1.
String connectionURL = "jdbc:mysql://localhost:3306/ies_ph0?useSSL=false?characterEncoding=UTF8&allowPublicKeyRetrieval=true&useUnicode=true";



не, не катит:
method insertData: java.sql.SQLException: The connection property 'useSSL' only accepts values of the form: 'true', 'false', 'yes' or 'no'. The value 'false?characterEncoding=UTF8' is not in this set.
...
Рейтинг: 0 / 0
05.09.2021, 20:50
    #40095374
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair,

disclaimer: Не смотрел ни одного поста до последнего

У тебя урл неправильный.

Код: java
1.
jdbc:mysql://localhost:3306/ies_ph0?useSSL=false&...
...
Рейтинг: 0 / 0
05.09.2021, 20:51
    #40095376
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
вот так правильно

"jdbc:mysql://localhost:3306/ies_ph0?useSSL=false&characterEncoding=UTF8&allowPublicKeyRetrieval=true&useUnicode=true";
...
Рейтинг: 0 / 0
05.09.2021, 20:53
    #40095377
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair,

ну дак надо править, раз ошибка
Код: java
1.
String connectionURL = "jdbc:mysql://localhost:3306/ies_ph0?useSSL=false&characterEncoding=UTF8&allowPublicKeyRetrieval=true&useUnicode=true";
...
Рейтинг: 0 / 0
05.09.2021, 21:08
    #40095379
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
вадя
Pcrepair,

ну дак надо править, раз ошибка
Код: java
1.
String connectionURL = "jdbc:mysql://localhost:3306/ies_ph0?useSSL=false&characterEncoding=UTF8&allowPublicKeyRetrieval=true&useUnicode=true";



спасиба, поправил уже

как строку
"UPDATE cookie_sessions SET session='88888v654edfghjkmnbvfrtyuik' WHERE username='Ваня Сидоров'"
перевести на переменные (cookie_sessions, session, ... и все остальные составляющие ), что бы можно было оперативно менять структуру запроса.
какой формат записи, точнее синтаксис?
...
Рейтинг: 0 / 0
05.09.2021, 21:35
    #40095382
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
Pcrepair,

что значит "опреративно"?
...
Рейтинг: 0 / 0
05.09.2021, 22:03
    #40095384
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
...
Рейтинг: 0 / 0
05.09.2021, 23:08
    #40095388
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
PetroNotC Sharp,

я то знаю, а что подразумевает ТС? - «оперативно менять структуру»?
...
Рейтинг: 0 / 0
05.09.2021, 23:20
    #40095390
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
ТС с профилем Делфиста пытается разбираться в Java-технологиях.
...
Рейтинг: 0 / 0
06.09.2021, 10:19
    #40095413
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 8 не работает Statement.executeUpdate
вадя,
Структуру он не поменяет. Только параметры. Ты прав.
Это даже дельфисты знают.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java 8 не работает Statement.executeUpdate / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]