Sqlite тип данных - PullRequest
       2

Sqlite тип данных

1 голос
/ 13 августа 2011

Я использую sqlite и java в качестве языка программирования.У меня есть класс, который

public class DataSet {

    public ArrayList<Double> a = null;
    public ArrayList<Double> b = null;
    public ArrayList<Double> c = null;

    public DataSet() {
        a = new ArrayList<Double>();
        b = new ArrayList<Double>();
        c = new ArrayList<Double>();
    }
}

Я хочу хранить DATA, где DataSet DATA=new DataSet(); в sqlite.Но я хочу сделать это один раз ( не в цикле for для получения данных по одному).Есть ли какой-либо набор данных, который я могу использовать и хранить все это как изображение в C #?

1 Ответ

2 голосов
/ 13 августа 2011

Вы хотите сохранить объект как изображение? Итак, в целом ... Сделайте объект Сериализуемым так:

public class DataSet implements Serializable {
  /* this is the version of this class,
     increment, when you change the implementation */
  public static final serialVersionUID  = 1L;
  ...
}

И сохранить двоичный результат в байтовом массиве с ObjectOutputStream. Этот байтовый массив вы можете сохранить в своей базе данных как BLOB. Например, если ваша таблица имеет идентификатор и столбец данных:

byte[] data;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
try {
  oos.writeObject(DATA);
  data = bos.toByteArray();
} finally {
  oos.close();
}    

PreparedStatement pstmt = jdbcConnection.prepareStatement(
    "insert into MYTABLE (id, data) values (?, ?)");
pstmt.setLong(1);
pstmt.setBlob(2, new ByteArrayInputStream(data));

...

Зафиксируйте данные, закройте соединение. Внимание: этот код не проверен ...

Снова читая BLOB-объект из базы данных, вы можете использовать ObjectInputStream в байтовом массиве, который вы получаете от BLOB, как и выше, только наоборот. Я оставляю это для вас, чтобы закодировать.

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

Удачи!

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