сохранить и получить сокет как объект (Java / MySQL) - PullRequest
0 голосов
/ 30 октября 2018

У меня есть требование хранить ссылку на сокет, относящуюся к соединению IP-устройства, в MySQL, часть хранилища работает (как тип данных blob в MySQL).

String str1 = "update node set socket=\'" +e2 + "\' where ipaddress='" + (e1.getIpAddress()) + "'";
stmt.executeUpdate(str1);

Однако, когда я пытаюсь получить объект и затем привести его к сокету (я не могу создать новый сокет, так как сокет уже открыт / подключен, я должен «повторно использовать» существующий сокет в моем конкретном приложении ) это не удается.

Object currentSock = null;  

currentSock = (Object) (var4.getObject("socket"));  //gets the blob from MySQL

System.out.println("the currentSock is " +currentSock);  // shows the blob

Socket t = (Socket) currentSock;  // fails

Ошибка не может привести BLOB-объект к сокету.

Я пробовал различные перестановки get (если указано, что String или Object, кажется, игнорируется, get возвращает любой тип данных в таблице), т.е.

currentSock = (var4.getObject("socket"));  //gets the blob from MySQL

Если я сохраню сокет в MySQL как строку, произойдет сбой, потому что строка не может быть преобразована в сокет (я понимаю это).

Мне нужно использовать MySQL, потому что мне нужно «передать» объект между двумя разными jar-файлами, и я не знаком с другими механизмами для достижения этого.

Если я храню сокет в HashSet, я могу успешно привести запись массива к объекту, а затем к объекту к сокету, но я не знаю, существует ли механизм для передачи HashSet между jar-файлами с одинаковыми именами в тот же ПК.

Я что-то упускаю из виду, что-то не так с операторами get / cast?

С уважением Ральф

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...