标签: sqlite

如何在Android上扩展ORMLite的BaseDaoImpl类以扩展功能

我想知道是否有办法在Android上扩展ORMLite的BaseDaoImpl类.在我的Android项目中,我使用几个不同的Dao对象来访问不同的业务对象.我的业务对象存储在不同的表中,并且都是从具有两个成员的BusinessObject基类继承而来的Long id;,Long objectId;其中id是数据库表中对象的真正唯一ID.

public abstract class BusinessObject{   

    public static final String ID_COLUMN_NAME = "_id";
    public static final String OBJECT_ID_COLUMN_NAME = "object_id";

    @SerializedName(value="_id")
    @DatabaseField(canBeNull=false, columnName = ID_COLUMN_NAME, generatedId=true)
    private int id;

    @SerializedName(value="id")
    @DatabaseField(canBeNull=false, columnName=OBJECT_ID_COLUMN_NAME, index=true, unique = true)    
    private long objectId;
}
Run Code Online (Sandbox Code Playgroud)

现在我希望能够通过id和objectId删除业务对象.由于BaseDaoImpl类,当然已经可以删除id.为了能够通过objectId删除它们,我想到了扩展BaseDaoImpl类并向它添加泛型方法deleteByObjectId()方法.在方法中,我将使用dao的delete()方法删除对象,该方法采用PreparedDelete语句.

public class ExtendedDaoImple<T, ID> extends BaseDaoImpl<T, ID> implements ExtendedDao<T, ID> {

    protected ExtendedDaoImple(Class<T> dataClass) throws SQLException {
        super(dataClass);
    }

    public int deleteByObjectId(long objectId) throws SQLException {
        DeleteBuilder<T, ID> delBuilder = …
Run Code Online (Sandbox Code Playgroud)

sqlite android ormlite

14
推荐指数
1
解决办法
4674
查看次数

通过FMDB将数组传递给sqlite WHERE IN子句?

是否可以通过FMDB将数组传递给SELECT ... WHERE ... IN语句?我试图像这样内爆数组:

NSArray *mergeIds; // An array with NSNumber Objects
NSString *mergeIdString = [mergeIds componentsJoinedByString:@","];

NSString *query = @"SELECT * FROM items WHERE last_merge_id IN (?)";
FMResultSet *result = [database executeQuery:query, mergeIdString];
Run Code Online (Sandbox Code Playgroud)

这只适用于数组中只有一个对象,这使我相信FMDB在整个​​内爆字符串周围添加了引号.

所以我尝试将数组传递给FMDB的方法:

NSArray *mergeIds; // An array with NSNumber Objects
NSString *query = @"SELECT * FROM items WHERE last_merge_id IN (?)";
FMResultSet *result = [database executeQuery:query, mergeIds];
Run Code Online (Sandbox Code Playgroud)

这根本不起作用.

我没有在README或FMDB的github页面上的示例中找到任何关于它的内容.

谢谢,斯特凡

sqlite fmdb where-in ios

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

升级时保持相同的SQLite数据库,从Lite到Pro版本升级Android应用程序

首先,我做了一个搜索,找不到我的问题的具体答案,所以这里...

我正在编写我的第一个Android应用程序,并计划拥有Lite版本(有限功能)和付费版本(完整功能).

Lite和Pro版本将使用相同的SQLite数据库结构,如果用户以Lite版本启动并升级到Pro版本,我不希望它们丢失他们在Lite版本中创建的数据.

由于Lite和Pro版本(根据我的理解)必须在单独的包中以允许Android Market区分它们,Pro版本如何看到Lite数据库?

非常感谢你的答案.

sqlite android upgrade

14
推荐指数
1
解决办法
1783
查看次数

我可以在sqlite中插入触发器之前更新New吗?

例如:

create table test (id numeric, t date not null);

create trigger test_in
before insert on test
for each row
when New.t is null
begin
 -- set New.t = now();
end;
Run Code Online (Sandbox Code Playgroud)

设置New.t不起作用,其中只能选择/插入/更新/删除stmt. 我无法更改数据库结构(可以设置默认值).插入触发器后也因为"not null"约束而不适合.我找到的唯一解决方案:

insert into test values (New.id, now());
select raise(ignore);
Run Code Online (Sandbox Code Playgroud)

测试数据库仅用于说明目的,实际上存在计算数据的更复杂的情况.可能有这样的"更新New set New.t = now()",或不?

sql sqlite

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

Visual Studio Server Explorer是否支持自定义数据库提供程序?

在我的一些学习项目中,我曾使用Server Explorer和相关工具与Microsoft SQL Server进行图形数据库开发 - 这是一次很棒的体验.但是,在我的工作中,我处理Oracle DB和SQLite,我的业余爱好项目使用MySQL(因为它们托管在Linux上).

有没有办法利用Visual Studio中与其他数据库提供程序相关的数据库相关工具?

c# mysql sqlite oracle visual-studio

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

使用Java中的sqlite获取最后插入的id的最佳方法是什么?

使用Java中的sqlite获取最后插入的id的最佳方法是什么?谷歌给了我不同的答案 - 有人说选择last-insert-rowid; 其他人说call statement.getGeneratedKeys().什么是最好的路线?(我只是想返回id,而不是用于其他插入或任何东西.)

java sqlite jdbc

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

iPhone SQLite DB和基于Web的数据库同步和交互建议

我正在开发我的第二个iPhone应用程序,我正在寻找有关数据库处理的架构建议.

其思想是:1.信息数据库存储在服务器(LAMP堆栈)上,信息通过JSON传递给设备.这部分已经实施.

  1. 用户能够"喜欢"数据库中的项目,该项目将其存储在本地设备上的SQLite中.

  2. 用户还可以向远程服务器提交尚未存在的新项目,使其可供其他用户使用.

  3. 用户可以通过单个搜索界面搜索两个数据库以查找项目.

我正在尝试为此决定数据结构,以及如何处理数据库中的结果对象.我想我有两个选项:

  1. 远程DB和本地DB具有相同的对象类型,本地DB存储远程项的id以链接这两者

  2. 远程项和本地项的单独对象

任何想法,想法等都非常感谢!

database sqlite iphone json

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

是否可以在sqlite中创建一个javascript用户定义的函数

背景:

  • Firefox 3包含 SQLite版本3.5.9.Firefox还允许使用javascript编写的扩展,并可以调用嵌入式SQLite引擎.

  • 正如所料,执行以下SQL语句'SELECT"TEXT"REGEXP"T*";' 由于SQLite中没有本地包含的REGEXP函数,因此会出错.

  • javascript包含内置的regexp功能.

  • SQLite允许通过SELECT load_extension('filename')加载扩展;

问题: 是否可以在SQLite中加载一个用javascript编写的可以执行REGEXP的扩展?

javascript sqlite

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

一个大的MySQL数据库还是一千个小的SQLite数据库?

我正在研究基于Web的组织工具.我并不瞄准与美妙的Basecamp相同的市场,但让我们说用户和数据交互的方式看起来一样.

我将不得不处理用户自定义,文件上传和图形调整.每个帐户都有一个论坛.我想提供一种轻松备份每个帐户的方法.

我一直在考虑如何创建一个合理的体系结构,并且已经过训练,可以在一个(如果需要的话,还需要分发)MySQL数据库中使用精美的规范化数据.最近我一直想知道:是否可以考虑使用一个SQLITE DB存储每个帐户的数据,并仅使用MYSQL进行常规网站管理?

亲:

  • 备份很简单:设置版本,zip,上传.
  • 如果每个帐户都使用大量论坛,请不要理会:每个帐户都有一个文件.
  • SQLITE快速闪电,没有昂贵的连接时间......
  • 表格方案简单得多:每次都不需要对帐户进行任何区分

缺点:

  • 不知道它是否可扩展
  • 不知道硬盘是否会跟上
  • 不知道是否有办法让SQLITE不存储在RAM中,因为它很快就会成为灾难
  • 很多目录和子目录:这样可以吗?
  • 维护问题:升级实时站点意味着逐个升级所有数据库
  • 开发问题:设置dev/pre prod/prod env会很困难
  • commom数据仍然需要使用mysql,所以我们最终会为每个页面结束2个DB连接,arg

更有利于专业人士,它仍然让我怀疑(zepplin风格).

你说什么 ?

mysql architecture sqlite

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

如何在调用SQLite的python中按名称引用列?

我有一些代码,我一直用它来查询MySQL,我希望将它与SQLite一起使用.我真正希望这不会涉及对代码进行太多更改.不幸的是,以下代码不适用于SQLite:

cursor.execute(query)

rows = cursor.fetchall()

data = []
for row in rows
  data.append(row["column_name"])
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误:

 TypeError: tuple indices must be integers
Run Code Online (Sandbox Code Playgroud)

如果我更改引用以使用列号,它可以正常工作:

  data.append(row[1])
Run Code Online (Sandbox Code Playgroud)

我能以这样的方式执行查询吗?我可以按名字引用列吗?

python sqlite

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