2014-05-05 42 views
3

在ORMLite中,要从基于注释的数据库表定义切换到表配置文件。我已经创建了一个ormlite_config.txt文件描述here,我用它在我的DatabaseHelper构造:如何在表配置文件中使用自己的DAO类

public DatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION, R.raw.ormlite_config); 
} 

,我可以从日志中看到,对于每一个表的配置加载成功。但是,我想继续为我的大多数表使用自定义DAO类(BaseDaoImpl的子类),类似于注释@DatabaseTable(daoClass = MyDaoClass.class)

是否可以根据表配置文件使用自定义DAO类?喜欢的东西:

# --table-start-- 
dataClass=com.example.model.Product 
daoClass=com.example.db.ProductDao 
tableName=product 
# --table-fields-start-- 
# --field-start-- 
... 
+0

只需用您的connectionsource手动创建DAO。之后用DaoManager.registerDao(connectionSource,dao)注册DAO。 – einschnaehkeee

回答

1

我认为这可以帮助你解决问题:https://groups.google.com/forum/#!searchin/ormlite-android/DAO/ormlite-android/tYHcLjv8xtQ/6kKl5Vnwy6EJ

与您的配置文件

因此,DAO创作在很大程度上加快,你可以像之前创建的DAO,并进行注册Dao管理器。

+0

好的,但对于'BaseDaoImpl',我需要一个带注释的类作为构造函数参数或'DatabaseTableConfig',这是我没有的,因为我在文本文件中定义了表配置,而不是在代码中。 – saschoar

+0

据我了解,使用'DaoManager.createDao(cs,MyDomainClass.class)'是完全不错的,因为DaoManager会知道在哪里寻找你的配置文件,因为你在OrmLiteConfigUtil中的配置(见类,你给'writeConfigFile()') – einschnaehkeee

0
public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION, 
       R.raw.ormlite_config); 
    } 

*and config file is* 

# --table-start-- 
dataClass=com.exito.patelsdrive.MessageList 
tableName=message_store 
# --table-fields-start-- 
# --field-start-- 
fieldName=messageId 
columnName=message_id 
generatedId=true 
# --field-end-- 
# --field-start-- 
fieldName=message 
columnName=msg_content 
# --field-end-- 
# --table-end-- 
相关问题