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

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
Java 8 не работает Statement.executeUpdate
    #40095319
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,
Ловить надо все исключения. А не одного типа.
...
Рейтинг: 0 / 0
Java 8 не работает Statement.executeUpdate
    #40095320
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,
Ну и лог субд покажи. Не пропадай на неделю.
...
Рейтинг: 0 / 0
Java 8 не работает Statement.executeUpdate
    #40095331
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это - функция которая возвращает число update-нутых строк. Это число полезно отслеживать.

Код: sql
1.
stmt.executeUpdate(sqlCommand);
...
Рейтинг: 0 / 0
Java 8 не работает Statement.executeUpdate
    #40095358
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где коммит после апдейта?
...
Рейтинг: 0 / 0
Java 8 не работает Statement.executeUpdate
    #40095359
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
итак, жаба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
Java 8 не работает Statement.executeUpdate
    #40095367
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,
попробуй такое
Код: java
1.
String connectionURL = "jdbc:mysql://localhost:3306/ies_ph0?useSSL=false?characterEncoding=UTF8&allowPublicKeyRetrieval=true&useUnicode=true";
...
Рейтинг: 0 / 0
Java 8 не работает Statement.executeUpdate
    #40095368
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair
итак, жаба8 не может найти в БД "Ваня Сидоров", то есть кириллицу

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

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

Способов проверки - тоже много.
...
Рейтинг: 0 / 0
Java 8 не работает Statement.executeUpdate
    #40095373
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
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
Java 8 не работает Statement.executeUpdate
    #40095374
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

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

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

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

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

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

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

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


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