ORMLite配置异常处理
转载请保留链接http://www.cnblogs.com/bxfx111/p/5035402.html
ORMLite使用方法这里不再说了,给出两个大牛链接自己看去:
http://blog.csdn.net/lmj623565791/article/details/39121377
http://blog.csdn.net/oyangyujun/article/details/45621917
本文主要针对ormlite生成配置文件的时候有时候的报错,比如:
Exception in thread "main" java.io.FileNotFoundException: raw\ormlite_config.txt (系统找不到指定的路径。)
Could not find raw directory which is typically in the res directory
那就需要配置好运行内容
本人方式如下:
ormlite基本配置
OrmLiteSqliteOpenHelper代码如下:
1 package com.xvli.dao; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 6 import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; 7 import com.j256.ormlite.dao.RuntimeExceptionDao; 8 import com.j256.ormlite.support.ConnectionSource; 9 import com.j256.ormlite.table.TableUtils; 10 import com.xvli.bean.BranchVo; 11 import com.xvli.bean.LoginVo; 12 import com.xvli.pda.R; 13 14 import java.sql.SQLException; 15 import java.util.HashMap; 16 import java.util.Map; 17 18 /** 19 * Created by Administrator on 2015/12/7. 20 */ 21 public class DatabaseHelper extends OrmLiteSqliteOpenHelper { 22 23 /** 24 * 数据库名 25 */ 26 private static final String TABLE_NAME = "sqlite-test.db"; 27 /** 28 * 数据库版本 29 */ 30 private static final int DATABASE_VERSION = 1; 31 private static DatabaseHelper instance; 32 33 public DatabaseHelper(Context context) { 34 // super(context, TABLE_NAME, null, DATABASE_VERSION); 35 super(context,TABLE_NAME,null,DATABASE_VERSION,R.raw.ormlite_config); 36 } 37 38 /** 39 * 创建数据库 40 * 只有没有对应表的时候才会创建 41 * @param database 42 * @param connectionSource 43 */ 44 @Override 45 public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { 46 try { 47 TableUtils.createTable(connectionSource, LoginVo.class); 48 TableUtils.createTable(connectionSource, BranchVo.class); 49 } catch (SQLException e) { 50 e.printStackTrace(); 51 } 52 } 53 54 @Override 55 public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) { 56 try { 57 TableUtils.dropTable(connectionSource, LoginVo.class, true); 58 TableUtils.dropTable(connectionSource, BranchVo.class, true); 59 // after we drop the old databases, we create the new ones 60 onCreate(database, connectionSource); 61 } catch (SQLException e) { 62 e.printStackTrace(); 63 } 64 } 65 66 @Override 67 public void close() { 68 super.close(); 69 } 70 }
生成数据库配置文件如下
package com.xvli.utils; import com.j256.ormlite.android.apptools.OrmLiteConfigUtil; import com.xvli.bean.BranchVo; import com.xvli.bean.LoginVo; import java.io.File; import java.io.IOException; import java.sql.SQLException; /** * Created by Administrator on 2015/12/9. */ public class DatabaseConfigUtil extends OrmLiteConfigUtil { private static final Class<?>[] classes = new Class[]{ LoginVo.class, BranchVo.class }; public static void main(String[] args) throws IOException, SQLException { // writeConfigFile("ormlite_config.txt", classes); writeConfigFile(new File("ormlite_config.txt"), classes); } }
一、Android studio 的配置(本人测试花了点时间)
1、打开Edit Configuration
2、把Working directory的内容改为$MODULE_DIR$/src/main/res/raw
这里注意上面的raw文件夹下就是对应的 ormlite_config.txt 文件,保持对应关系才能不报错找不到文件。
3、把Before launch中的Make删掉或者Make,no error check,这里是修改不建议删除掉,本人测试有问题,建议修改成Make,no error check,自己切换下试试就好
这样就不会找不到路径了。
运行吧
运行成功后下图有样本
二、在eclipse中运行的话配置如下(这里借鉴了别人的图,但是测试过可行):
# # generated on 2015/12/10 10:34:06 # # --table-start-- dataClass=com.xvli.bean.LoginVo tableName=t_ATM_User # --table-fields-start-- # --field-start-- fieldName=ids generatedId=true # --field-end-- # --field-start-- fieldName=clientid # --field-end-- # --field-start-- fieldName=name1 # --field-end-- # --field-start-- fieldName=name2 # --field-end-- # --field-start-- fieldName=name3 # --field-end-- # --field-start-- fieldName=pwd1 # --field-end-- # --field-start-- fieldName=pwd2 # --field-end-- # --field-start-- fieldName=pwd3 # --field-end-- # --field-start-- fieldName=jobnumber1 # --field-end-- # --field-start-- fieldName=jobnumber2 # --field-end-- # --field-start-- fieldName=jobnumber3 # --field-end-- # --field-start-- fieldName=department1 # --field-end-- # --field-start-- fieldName=department2 # --field-end-- # --field-start-- fieldName=department3 # --field-end-- # --field-start-- fieldName=truckcode # --field-end-- # --field-start-- fieldName=platenumber # --field-end-- # --field-start-- fieldName=user1logintime # --field-end-- # --field-start-- fieldName=user2logintime # --field-end-- # --field-start-- fieldName=user3logintime # --field-end-- # --field-start-- fieldName=bindtruckcode # --field-end-- # --field-start-- fieldName=bindplatenumber # --field-end-- # --field-start-- fieldName=bindtime # --field-end-- # --field-start-- fieldName=bindtruck_stuts # --field-end-- # --field-start-- fieldName=local_login_time # --field-end-- # --field-start-- fieldName=local_task_time # --field-end-- # --table-fields-end-- # --table-end-- ################################# # --table-start-- dataClass=com.xvli.bean.BranchVo tableName=T_ATM_BranchVo # --table-fields-start-- # --field-start-- fieldName=ids generatedId=true # --field-end-- # --field-start-- fieldName=id # --field-end-- # --field-start-- fieldName=code # --field-end-- # --field-start-- fieldName=name # --field-end-- # --field-start-- fieldName=customerid # --field-end-- # --field-start-- fieldName=type # --field-end-- # --field-start-- fieldName=districts # --field-end-- # --field-start-- fieldName=atmno # --field-end-- # --field-start-- fieldName=address # --field-end-- # --field-start-- fieldName=remarks # --field-end-- # --field-start-- fieldName=gisx # --field-end-- # --field-start-- fieldName=gisy # --field-end-- # --field-start-- fieldName=clientid # --field-end-- # --field-start-- fieldName=barcode # --field-end-- # --field-start-- fieldName=taskid # --field-end-- # --field-start-- fieldName=isnetdone # --field-end-- # --table-fields-end-- # --table-end-- #################################