标签: ormlite

在SQLite下在ORMLite中创建外键约束

由于无法在SQLite中使用"ALTER TABLE"语句添加外键,因此我坚持如何配置数据库以强制执行有效的外键,或执行级联删除而不显式代码开销.

任何人都知道如何在SQLite下使用ORMLite实现这一目标?

sqlite android ormlite

13
推荐指数
2
解决办法
8359
查看次数

Ormlite内连接在三个表上

我想在三个表上创建一个内连接,例如:

SELECT C.Description, D.ItemDescription
  FROM OrderDetailStatement AS D 
 INNER JOIN OrderHeaderStatement AS H 
    ON H.OrderHeaderStatementRefID = D.OrderHeaderStatementRefID 
 INNER JOIN customers AS C 
    ON H.CustomerRefID = C.CustomerRefID
 WHERE (D.MixedValue > 1000)
Run Code Online (Sandbox Code Playgroud)

但我有点困惑,你能不能给我一个演练?

提前致谢

sql android inner-join ormlite

13
推荐指数
1
解决办法
2万
查看次数

createOrUpdate()始终使用ORMLite在数据库中创建新条目

在我的Android项目中,ORMLite充当缓存.我正在从Web服务器下载数据并将其放入数据库中.我正在调用createOrUpdate我的对象,但重复数据库出现在数据库中.除了主键(它只是一个自动递增的整数)之外,数据库条目是相同的.我认为,由于我的第二个对象还没有主键,因此ORMLite认为两者是不同的,即使每个其他字段都相同.

有没有人知道这是不是真的?

android ormlite

13
推荐指数
1
解决办法
1万
查看次数

使用Ormlite与Android的内容提供商合作

我正在开发一个Android应用程序,我对是否应该使用Ormlite与Android内容提供程序一起更新和检索数据感到矛盾.内容提供程序将主要用于通知应用程序其他平台上应用程序中发生的数据更改.也许我让它变得比它需要的更复杂.一些更有经验的意见将不胜感激!

android persistence ormlite android-contentprovider

13
推荐指数
1
解决办法
5558
查看次数

Android Studio ORMLite配置文件 - 无法找到原始目录

以下问题的注释:Android Studio运行ORMLite配置生成配置

我能够让我的配置运行这一个类,但它仍然失败了

Could not find raw directory
Run Code Online (Sandbox Code Playgroud)

这是我的来源

package com.ilopez.android.machinesounds;

import com.j256.ormlite.android.apptools.OrmLiteConfigUtil;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;

/**
 * Created by User on 7/25/13.
 */
public class DatabaseConfigUtil extends OrmLiteConfigUtil {
    private static final Class<?>[] classes = new Class[]{
            RecordedSound.class,
    };


    public static void main(String[] args) throws IOException, SQLException {
        writeConfigFile(new File("G:\\MachineSoundsProject\\MachineSounds\\src\\main\\res\\raw\\ormlite_config.txt"), classes );
    }
}
Run Code Online (Sandbox Code Playgroud)

我的平台是Windows,我无法弄清楚为什么它一直失败"无法找到原始目录".

这是我的android工作室运行的命令:

 "C:\Program Files\Java\jdk1.6.0_37\bin\java" -Didea.launcher.port=7544 "-Didea.launcher.bin.path=C:\Program Files (x86)\Android\android-studio\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Android\android-studio\sdk\platforms\android-17\android.jar;C:\Program Files (x86)\Android\android-studio\sdk\platforms\android-17\data\res;C:\Program Files (x86)\Android\android-studio\sdk\tools\support\annotations.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\build\classes\debug;C:\Program Files (x86)\Android\android-studio\sdk\extras\android\m2repository\com\android\support\support-v4\13.0.0\support-v4-13.0.0.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\libs\ormlite-android-4.45.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\libs\ormlite-core-4.45.jar;C:\local\Dropbox\git\MachineSoundsProject\MachineSounds\libs\ormlite-jdbc-4.45.jar;C:\Program Files (x86)\Android\android-studio\lib\idea_rt.jar" …
Run Code Online (Sandbox Code Playgroud)

java android ormlite android-studio

13
推荐指数
3
解决办法
6909
查看次数

没有使用基本活动的Ormlite设置

我在android项目中使用ORMLite,我不想使用扩展活动,因为我在AsyncTask上将值插入数据库.

在文档中它说:

"如果你不希望延长OrmLiteBaseActivity与其他基类,那么你将需要复制它们的功能.你需要调用OpenHelperManager.getHelper(Context context, Class openHelperClass)你的代码的开始,保存帮手,当你想使用它了,然后调用OpenHelperManager.release()时你完成了它."

它还说要添加数据库助手类strings.xml,我有.所以我不确定我做错了什么.

我正在使用一个名为DataAccess我的数据层的类,如下所示:

public class DataAccess {
    private Context context;
    private DBHelper dbHelper;

    public DataAccess(Context _context) {
        this.context = _context;
        dbHelper = getDBHelper(_context);
    }

    private DBHelper getDBHelper(Context context) {
        if (dbHelper == null) {
            dbHelper = (DBHelper) OpenHelperManager.getHelper(context, DBHelper.class);
        }
        return dbHelper;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用扩展的助手类:

public class DBHelper extends OrmLiteSqliteOpenHelper {
    private static final String DATABASE_NAME = "database.db";
    private static final int DATABASE_VERSION …
Run Code Online (Sandbox Code Playgroud)

java android ormlite

12
推荐指数
1
解决办法
4938
查看次数

使用Foreign Collection Field创建表

我有这个抽象类:

DomainItem

abstract public class DomainItem {

    @DatabaseField(generatedId = true)
    protected long id;

    @ForeignCollectionField(eager = false)
        protected ForeignCollection<ContentItem> contentItens;

    //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

ContentItem:

abstract public class ContentItem {

    @DatabaseField(generatedId = true)
    protected long id;

    @DatabaseField(foreign = true)
    protected DomainItem domainItem;


    @DatabaseField()
    protected String content;

    //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

这些(没有摘要):

@DatabaseTable()
public class PhytoterapicItem extends DomainItem{

    public PhytoterapicItem(){

    }

}
Run Code Online (Sandbox Code Playgroud)

PhytoterapicContent

@DatabaseTable(tableName = "phytoterapiccontent")
public class PhytoterapicContent extends ContentItem {

    @DatabaseField(canBeNull = false)
    private String defaultName;

    @DatabaseField(canBeNull = false)
    private …
Run Code Online (Sandbox Code Playgroud)

java ormlite foreign-collection

12
推荐指数
2
解决办法
9984
查看次数

在Android中使用CursorAdapter进行ORMLite

我正在修改我的Android应用程序以使用ORMLite,它目前使用了许多CursorAdapter,我非常希望尽量减少编码.

我不是100%肯定但是看起来当ORMLite在db中创建一个id字段时,它总是使用id,而CursorAdapter需要_id.

可以使用如下查询来解决此问题:

select id as _id ......
Run Code Online (Sandbox Code Playgroud)

但该Dao.queryRaw()方法返回一个列表,而不是Cursor,所以我这样做的方法是打开另一个SQLiteOpenHelper数据库连接并使用rawQuery().

这有效,但有没有更好的方法呢?拥有两个独立的数据库连接似乎有点过头了,以后可能会存在麻烦.

android ormlite android-cursoradapter

12
推荐指数
2
解决办法
7067
查看次数

ORMLite中的多个组合OR条件

我喜欢这样的查询:

select data from table
 where (x > 1 and x < 100)
    or (x > 250 and x < 300)
Run Code Online (Sandbox Code Playgroud)

在ORMlite中,可以使用此代码:

final QueryBuilder<Data,Integer> qb = queryBuilder();
final Where<Data, Integer> w = qb.where();

w.or(
    w.gt("x", 1).and().lt("x", 100),
    w.gt("x", 250).and().lt("x", 300)
)
Run Code Online (Sandbox Code Playgroud)

虽然如果事先知道条件并且在编码时这很好,我需要动态添加条件.

基本上这种方法public com.j256.ormlite.stmt.Where<T,ID> or(com.j256.ormlite.stmt.Where<T,ID> left, com.j256.ormlite.stmt.Where<T,ID> right, com.j256.ormlite.stmt.Where<T,ID>... others)还不够.它需要其他or支持的方法ArrayListWhere条件.

谢谢你的任何建议.

java ormlite

11
推荐指数
1
解决办法
8727
查看次数

ORMLite重置所有表

我有一个使用ORMLite的应用程序.我需要创建一个函数来重置整个数据库(基本上我需要删除每个数据库中的所有行,重置自动增量和重置索引).

我可能可以通过在每个表上启动截断来实现这一点,但ORMLite是否有一些特定的方法来执行此操作?

android ormlite

11
推荐指数
1
解决办法
1万
查看次数