Java SQLite数据库不接受超过1000行?
我正在写一个android应用程序。我正在解析txt文件中的行,并将每行中的数据插入SQLite数据库。但插入过程恰好在1000个条目处停止。有3000多个条目,但插入过程在1000处停止。出什么事了 编辑:以下是代码:Java SQLite数据库不接受超过1000行?,java,android,sqlite,Java,Android,Sqlite,我正在写一个android应用程序。我正在解析txt文件中的行,并将每行中的数据插入SQLite数据库。但插入过程恰好在1000个条目处停止。有3000多个条目,但插入过程在1000处停止。出什么事了 编辑:以下是代码: try{ InputStream is = ctx.getAssets().open("feedtitlesandaddresses.txt"); InputStreamReader iz=new InputStreamReade
try{
InputStream is = ctx.getAssets().open("feedtitlesandaddresses.txt");
InputStreamReader iz=new InputStreamReader(is);
BufferedReader br = new BufferedReader(iz);
ContentValues values = new ContentValues();
while((line=br.readLine())!=null) {
StringTokenizer stringTokenizer = new StringTokenizer(line, "<");
String firstNumber="";
String strfinal="";
**//code which gives values to strfinal and firstNumber excluded
values.put(KEY_NAME, firstNumber); // Contact Name
values.put(KEY_PH_NO,strfinal); // Contact Phone
// Inserting Row
db.insert(TABLE_CONTACTS, null, values);}
}catch(Exception e){Log.d("yeah error is"+e,"twitch12");}
试试看{
InputStream=ctx.getAssets().open(“feedTitlesAndAddresss.txt”);
InputStreamReader iz=新的InputStreamReader(is);
BufferedReader br=新的BufferedReader(iz);
ContentValues=新的ContentValues();
而((line=br.readLine())!=null){
StringTokenizer StringTokenizer=新的StringTokenizer(第行)
出什么事了
我想这很奇怪。问题可能和这两者都有关(文件或数据库的问题)
您是否考虑过事务
?它可能会解决您的问题。我最近使用db和normal插入了100000行(但肯定是在事务中),因为如果没有事务,您的操作将花费大量时间
所以,正如我的建议,将代码封装到事务中,读写所需的时间将大大减少,应该可以解决这个问题
伪代码:
try {
db.begiTransaction();
...
// your work with file and inserting
db.setTransactionSuccessful();
...
}
finally {
if (db.inTransaction()) {
db.endTransaction();
}
}
更新:
查看文件中的1000.行,并让我知道。步骤:
- 转到SQLiteStudio
- 选择工具>打开配置对话框>数据浏览
- 在数据浏览中,现在每页将有
数据行数
选择你想要的尺寸
我和你有同样的问题,我把数字1000改为2000,效果很好。希望对你有用。@raghasood:Added..android的readLine()方法如何处理txt文件中只包含回车或换行符的一行?这行=”“或null?@tim我想你说的是文件的结尾。它是null而不是”“。我指的是行的结尾。文本文件是否有可能包含一个“空白”行(除了行的结尾字符之外什么都没有),而readLine()正在将其解析为null方法?@tim不,这条线没有问题,我从这条线上方删除了2条线并运行了应用程序,现在第1000条是在问题线下方2条线的条目,所以这条线没有问题。谢谢你的回答。我尝试了你的建议,但仍然停留在1000条。这和其他条目一样。我不认为是这样文件有问题,因为该行与所有其他行一样,1000是一个太圆的数字..,它一定是sqlite或数据库的问题..@user2213396 uhm和任何错误?请尝试首先从文件中读取,将值保存到列表中,然后执行插入。