編集:
申し訳ありませんが、質問がわかりました。あなたはあなたがあなたのフィールドのそれぞれにを指定しなかったと言っています、そしてあなたはこれのために今columnName = "..."
問題を抱えています。QueryBuilder
columnName
推奨されていますが、仕事に取り掛かる必要はありませんQueryBuilder
。columnName
フィールドに戻って、既存のスキーマに一致するスタティックを追加できるはずです。たとえば、データベースのフィールドがである場合は、Javaフィールドにを"items"
追加するだけです。columnName = "items"
Sqliteは列名に関して大文字と小文字を区別するとは思いませんが、大文字と小文字を一致させることもできます。
ただし、は必要ありませんcolumnName
。データベースのフィールド名がである場合、次の"items"
ことができるはずです。
itemsDao.queryBuilder().where().eq("items", "computer").query();
質問を編集してスキーマと取得している例外を表示すると、QueryBuilder
より具体的に回答できるようになります。
私はあなたができるはずだと信じています:
dao.executeRaw("ALTER TABLE `items` ADD COLUMN name VARCHAR;");
それはあなたのために働きませんか?ORMLiteのドキュメントには、Androidでのスキーマの更新に関するセクションがあります。
http://ormlite.com/docs/upgrade-schema
そこから引用するには、スキーマを変更するときにデータベースのバージョンを変更してから、onUpgrade(...)
メソッドで次のようにする必要があります。
Dao<Account, Integer> dao = getHelper().getAccountDao();
// change the table to add a new column named "age"
dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;");
ほとんどの場合、データベースのバージョン番号をキーオフするのは、バージョン1の場合はXとYを実行しますが、バージョン2の場合はYを実行するだけです。
if (oldVersion == 1) {
// we added the age column in version 2
dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;");
}
if (oldVersion < 2) {
// we added the weight column in version 3
dao.executeRaw("ALTER TABLE `account` ADD COLUMN weight INTEGER;");
}
で何ができるかについては、Sqliteによって制限されて います。現在、列の名前を変更するか、新しい列を追加することしかできません。詳細については、ドキュメントを参照してください。ALTER TABLE