Лучший способ сериализировать структуру C, которая будет десериализована Java и т.д.

Вы можете выполнить вложенный запрос. Очень полезно для Mysql

SELECT a.`article_id`,
   a.`title`,
   a.`text`
FROM   `articles` a
   WHERE a.article_id IN ( 
         SELECT r.`article_id` 
         FROM `article_category_reference` r
         WHERE  r.category_id NOT IN ( ?,? )
);

Проще говоря, перейдите к article_category_reference, получите все идентификаторы, кроме них, и используйте эти идентификаторы для запроса таблицы статей.

6
задан 18 March 2009 в 19:12
поделиться

8 ответов

Смотрите на JSON. http://www.json.org. Если Вы переходите в из JavaScript, это - большая справка. Я не знаю, насколько хороший поддержка Java все же.

3
ответ дан 8 December 2019 в 18:41
поделиться

Если Вы имеете контроль над обеими кодовыми базами, необходимо рассмотреть использование Буферов Протокола.

4
ответ дан 8 December 2019 в 18:41
поделиться

Вы могли использовать формат Ввода данных/Вывода данных Java, который хорошо описан в javadoc.

4
ответ дан 8 December 2019 в 18:41
поделиться

Если Ваша структура не собирается изменяться (очень), и Ваши данные находятся в довольно последовательном формате, Вы могли просто выписать значения к файлу CSV или некоторый другой простой формат.

Это может быть легко считано в Java, и Вы не должны будете волноваться о сериализации к XML. Иногда простое движение является самым легким маршрутом.

1
ответ дан 8 December 2019 в 18:41
поделиться

Одна возможность создает небольшие XML-файлы с заголовком, идентификатором, параметрическими усилителями, и т.д., и затем ссылкой (именем файла) туда, где данные плавающие содержатся. Принятие там является ничем специальным о данных плавающих, и тот Java и C используют тот же формат с плавающей точкой, можно считать тот файл в с readFloat () DataInputStream.

0
ответ дан 8 December 2019 в 18:41
поделиться

Смотрите на сервисы Гессиана/Мешковины Смолы. Вы не можете хотеть целый сервис, просто часть API и понимание проводного протокола.

1
ответ дан 8 December 2019 в 18:41
поделиться

Если:

  • Ваши данные являются по существу большим массивом плаваний;
  • Вы можете протестировать процедуру записи/чтения во всех вероятных средах (=combinations Машин/ОС/компилятора C), на котором будет работать каждый конец;
  • производительность важна.

затем я, вероятно, просто продолжал бы писать данные из C в способе, которым Вы делаете (возможно, с небольшой поправкой - видят ниже), и поверните проблему в то, как Вы считываете те данные с Java.

Для чтения данных въезжают задним ходом от Java, используют ByteBuffer. По существу вытяните в плитах байтов от Ваших данных, перенесите ByteBuffer вокруг них и затем используйте получение (), getFloat (), getInt () и т.д. методы. Пакет NIO также имеет буферы "обертки", например, FloatBuffer, который от тестов я сделал, кажется, приблизительно на 20% быстрее для чтения больших количеств того же типа.

Теперь, одной вещью, относительно которой необходимо будет быть осторожны, является порядок байтов. От Java Вам нужно к порядку вызовов (ByteOrder. МАЛО _ ПОРЯДОК БАЙТОВ) или порядок (ByteOrder. БОЛЬШОЙ _ ПОРЯДОК БАЙТОВ) на Вашем буфере, прежде чем Вы начнете считывать данные. Для решения, чтобы использовать я рекомендовал бы, чтобы в очень запустились потока, Вы пишете некоторое известное 16-байтовое значение (например, 255 = 0x00ff). Затем от Java, вытащите эти два байта и проверьте порядок (0xff, 0x00 или 0x00, 0xff), чтобы видеть, есть ли у Вас мало или обратный порядок байтов.

0
ответ дан 8 December 2019 в 18:41
поделиться

Мне нравятся CSV и "Буферные ответы" Протокола (хотя, сразу, буферная вещь протокола могла бы быть очень похожа на YAML кто знает).

При необходимости в плотно упакованных записях для данных большого объема Вы могли бы рассмотреть это:

Создайте текстовый заголовок файла, описывающий текущую файловую структуру: рекордные размеры (типы????) и имена полей / размеры. Прочитайте и проанализируйте заголовок, затем используйте низкоуровневый двоичный файл операции ввода-вывода для загрузки полей каждой записи, er, свойств объекта или независимо от того, что мы называем его в этом году.

Это дает Вам способность изменить strucutre немного и иметь его самоописать, все еще позволяя Вы упаковать большой объем в меньшем пространстве, чем XML позволили бы.

TMTOWTDI, я предполагаю.

0
ответ дан 8 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: