Articles of ormlite

如何从ORMLITE中删除记录?

我需要删除ORMLite数据库中的记录我可以通过id删除记录,如下所示 @Override public void Delete(int id) throws SQLException { this.dao.deleteById(id); } 但是,如果我必须删除同一个表中的记录而不是通过id但是通过名称或任何其他字段我想要的东西 public void Deletefromcanteen(String name,MealType mealtype) { this.dao.deletebyName(name); } 我应该使用querybuilder写一个查询来删除name = name和mealtype = say(午餐)的记录 我在databasehelper类中尝试过类似的东西 public void deletefromcanteen(int id, String mealtype) { try { Dao canteenDao = getCanteen(); DeleteBuilder deleteBuilder = canteenDao .deleteBuilder(); deleteBuilder.where().eq(“user_id”, id).and().eq(“meal”, mealtype); canteenDao.delete(deleteBuilder.prepare()); } catch (Exception e) { … } […]

将ForeignCollection转换为ArrayList – ORMLite,Gson和Android

如果我对我的解释不是很清楚,我会道歉但是如果要求,我会添加并编辑这个问题。 我正在开发一个Android应用程序,它通过外部API接收数据并使用ORMLite在本地存储数据。 在本地存储数据并使用ORMLite之前,我有一些模型从服务器检索JSON并通过以下方式对其进行解析: Gson gson = new Gson(); String result = ApiClient.httpPost(“/user_route”); User user = gson.fromJson(result, User.class); User类已定义 public class User { int id; String name; ArrayList media; } 而Image类: public class Image { int id; int creator_id; String url; } 这是模型和方法的简化表示,但我相信我保留了所有相关信息。 BTW, media是一个包含Images的JSON对象。 现在我正试图在本地存储数据。 为了使用ORMLite在用户和图像之间建立关系,您似乎必须使用ForeignCollection类和@ForeignCollectionField注释。 我不相信Gson可以直接将User类中的media字段的Json解析为ForeignCollection对象,所以我认为我需要创建两个字段mediaCollection和media 。 使用ORMLite,User类现在看起来像这样: @DatabaseTable(tableName = “Users”) public class User […]

使用从Jackson创建的对象在Android上使用OrmLite保存子集合

我有一个REST服务,我正在从我的应用程序调用,它将一个JSON对象作为byte[]引入,然后将其转换为一个漂亮的嵌套对象集合 – 所有这些都可以正常工作。 我当时想要做的是使用OrmLite将这些对象持久化到SQLite存储,这就是事情开始崩溃的地方,因为据我所知,OrmLite不会自动持久化嵌套对象。 为简单起见,让我们删除我的实际function,并让我的对象简单地建模如下: @DatabaseTable(tableName = “parents”) public class Parent { @DatabaseField(id=true) private String name; @ForeignCollectionField // have to use Collection here because needs to be compatible with Jackson private Collection children; /* Getters and setters go here */ } @DatabaseTable(tableName = “children”) public class Child { @DatabaseField(id=true) private String name; @DatabaseField(foreign=true) private Parent […]

Android的ORMLite示例不能编译

我一直在尝试通过ORA说的HelloAndroid的例子,但一直无法成功编译。 我遇到了DatabaseHelper类的问题。 特别是getDao()方法: /** * Returns the Database Access Object (DAO) for our SimpleData class. * It will create it or return the cached value. */ public Dao<SimpleData, Integer> getDao() throws SQLException { if (simpleDao == null) { simpleDao = getDao(SimpleData.class); } return simpleDao; } 这是我收到的编译时错误: D的types参数不能确定; typesvariablesD的上限没有唯一的最大实例com.j256.ormlite.dao.Dao,com.j256.ormlite.dao.Dao

ORMLite查询date

我试图查询low和hign值之间的date: Car car = new Car(1, "octavia"); car.setManufactured(Calendar.getInstance().getTime()); Dao<Car, Integer> carDao = getHelper().getCarDao(); carDao.create(car); QueryBuilder<Car, Integer> carQb = carDao.queryBuilder(); Calendar yesteday = Calendar.getInstance(); yesteday.add(Calendar.DATE, -1); Calendar tommorrow = Calendar.getInstance(); yesteday.add(Calendar.DATE, 1); carQb.where().between("manufactured", yesteday.getTime(), tommorrow.getTime()); PreparedQuery<Car> query = carQb.prepare(); List<Car> cars = carDao.query(query); Log.d(TAG, cars.get(0).toString()); 汽车对象看起来这样: public class Car { @DatabaseField(id = true) private int id; […]

Android上的ORMLite使用javax.persistence注释

我们已经开发了一个Web服务,现在正在构build一个Android应用程序来与Web服务进行通信。 我们在我们的Web服务中使用持久性,也想在我们的Android应用中使用持久性。 我们认为ORMLite是在Android上持久化的一种方式,我们希望javax.persistence支持对于我们的应用程序来说足够好。 我希望能够将Web服务的数据模型复制到Android应用程序,而不必修改注释。 所以我试着复制模型类,并将ormlite-android-4.41.jar和ormlite-core-4.41.jar到我的Android项目中。 不幸的是,这并没有办法。 我的IDE找不到javax.persistence注释的类path。 我需要额外的库吗? 我不能在文档中做任何事情。

Android OrmLite预填充数据库

OrmLite是否可以创build一个sql脚本文件来轻松地用数据填充数据库? 我做了一些search,不能拿出任何简单的东西。 我知道我可以用数据创build一些对象,我只是在寻找一个更清洁的方法。 我想创build一个脚本文件,加载时打开一个阅读器,并将每个文件作为原始SQL执行executeRaw()方法。 有什么想法吗?

ORMLite中的集合

你好我想在我的android应用程序中使用ORMlite保存一些集合数据。 例如 : class Person { @DatabaseField(generatedId=true) private int id; @DatabaseField private String name; @DatabaseField private String surname; @ForeignCollectionField private Collections<Phone> phones; } class Phone { @DatabaseField(generatedId=true) private int id; @DatabaseField private String number; @DatabaseField private String type; } 我应该怎么做才能坚持这个collections。 编辑 正如你告诉我的,我使用ForeignCollectionField。 但现在我还有一个问题 – 可能是这样的build设(我改变了一点) @DatabaseTable public class Student { @DatabaseField(generatedId=true) private int id; @DatabaseField […]

ORMLite – 查询外国领域

使用ORMLite for Android,我需要build立一个查询,通过订单ID或客户名称返回订单。 请考虑下面的类声明: @DatabaseTable(tableName = "order") public class Order { @DatabaseField(generatedId = true) private Long id; @DatabaseField(foreign = true, canBeNull = false, foreignAutoRefresh = true, columnName = "customer_id") private Customer customer; // default constructor, getters and setters… } @DatabaseTable(tableName = "customer") public class Customer { @DatabaseField(generatedId = true) private Long id; @DatabaseField private String […]

如何在OrmLite中创buildsqlite准备语句?

是否有可能在OrmLite中创build一个SQLite准备语句? 如果是这样,如何绑定可能在不同查询中改变的查询值。