androidsqlite导入数据
Ⅰ 怎么将sqlite导入到android项目中 最好是有图片说明。
Android 集成了 SQLite 数据库 Android 在运行时(run-time)集成了 SQLite,所以每个 Android 应用程序都可以直接使用 SQLite 数据库,不需要导入操作,Android会自动创建。
Android 提供了 SQLiteOpenHelper 帮助用户创建一个数据库,只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper 的子类,至少需要实现三个方法:
1. 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
2.onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
3. onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
Ⅱ android sqlite 的导入( import)问题
注意数据库的每一列的字段都是一样的,这给我们一个很好的方法,可以用for循环的方法将没一列数据读出,并通过socket写入到流中,另一端则通过循环读流的方式,读一列就把数据存入SQLite数据库中。
另外有一个更为简洁的方法,如果你会Http、xml协议的话,可以将数据库中的数据以xml文件的格式发送到另一端,另一端就只用通过解析xml文件,并将数据保存到本地SQLite数据库中。
Ⅲ 如何把批量数据导入到android 的 sqlite 数据库
1、使用db.execSQL(sql)
这里是把要插入的数据拼接成可执行的sql语句,然后调用db.execSQL(sql)方法执行插入。
public void inertOrUpdateDateBatch(List<String> sqls) {
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
try {
for (String sql : sqls) {
db.execSQL(sql);
}
// 设置事务标志为成功,当结束事务时就会提交事务
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 结束事务
db.endTransaction();
db.close();
}
}
2、使用db.insert("table_name", null, contentValues)
这里是把要插入的数据封装到ContentValues类中,然后调用db.insert()方法执行插入。
db.beginTransaction(); // 手动设置开始事务
for (ContentValues v : list) {
db.insert("bus_line_station", null, v);
}
db.setTransactionSuccessful(); // 设置事务处理成功,不设置会自动回滚不提交
db.endTransaction(); // 处理完成
db.close()
3、使用InsertHelper类
这个类在API 17中已经被废弃了
InsertHelper ih = new InsertHelper(db, "bus_line_station");
db.beginTransaction();
final int directColumnIndex = ih.getColumnIndex("direct");
final int lineNameColumnIndex = ih.getColumnIndex("line_name");
final int snoColumnIndex = ih.getColumnIndex("sno");
final int stationNameColumnIndex = ih.getColumnIndex("station_name");
try {
for (Station s : busLines) {
ih.prepareForInsert();
ih.bind(directColumnIndex, s.direct);
ih.bind(lineNameColumnIndex, s.lineName);
ih.bind(snoColumnIndex, s.sno);
ih.bind(stationNameColumnIndex, s.stationName);
ih.execute();
}
db.setTransactionSuccessful();
} finally {
ih.close();
db.endTransaction();
db.close();
}
4、使用SQLiteStatement
查看InsertHelper时,官方文档提示改类已经废弃,请使用SQLiteStatement
String sql = "insert into bus_line_station(direct,line_name,sno,station_name) values(?,?,?,?)";
SQLiteStatement stat = db.compileStatement(sql);
db.beginTransaction();
for (Station line : busLines) {
stat.bindLong(1, line.direct);
stat.bindString(2, line.lineName);
stat.bindLong(3, line.sno);
stat.bindString(4, line.stationName);
stat.executeInsert();
}
db.setTransactionSuccessful();
db.endTransaction();
db.close();
Ⅳ android 向sqlite数据库中插入空间数据怎么写
lic void run() {
String aa = String.format(sql2);
try {
Class.forName("jsqlite.JDBCDriver").newInstance();
jsqlite.Database db = new jsqlite.Database();
db.open(DBpath,jsqlite.Constants.SQLITE_OPEN_READONLY);
db.exec(aa, new Callback() {
@Override
public void columns(String[] strings) {
Ⅳ android sqlite 插入数据失败的问题
先进调试页面,
打断点,单步运行,查看错误
3.在debug一栏中查看错误信息
这里的错误是数据库表单的项目和实际插入的项目数量不符,原因是这个代码是修改过的,原来的数据库表项有52,改成4之后,安卓模拟器里边的数据库并没有删除,保留原来的4项表单。
解决方法:找到数据库,数据库在这里找,这位大哥的博客里有,删除数据库。
4.如果不是这个问题,复制错误信息,求助网络
Ⅵ android怎么将.sql格式的文件导入到Sqlite去
有人说用sqlite3
sqlite3
mydb.db
>.read
dd.sql
mydb.db
就是我的android的数据库,数据表结构就是([id],[name])这样的
dd.sql
就是外部数据库
dd.sql里面的打开就是
Insert
Into
[mydb.db]
([id],[name])
Values("001","David");
请问这样可以导入么..或者有什么别的方法可以导入?
-----参考解决方法-------
把mydb.db用DDMS导出,用navicat打开,执行sql脚...
有人说用sqlite3
sqlite3
mydb.db
>.read
dd.sql
mydb.db
就是我的android的数据库,数据表结构就是([id],[name])这样的
dd.sql
就是外部数据库
dd.sql里面的打开就是
Insert
Into
[mydb.db]
([id],[name])
Values("001","David");
请问这样可以导入么..或者有什么别的方法可以导入?
-----参考解决方法-------
把mydb.db用DDMS导出,用navicat打开,执行sql脚本,把mydb.db用DDMS导入
全部
Ⅶ 如何把批量数据导入到android 的 sqlite 数据库
SQLite 数据库需要放在目录中的databases folder,我们可以使用“adb shell” 的 “mkdir”来创建这个文件夹。
#ls
lib
#mkdir databases
#ls
databases
lib
默认创建的"databases"仅供 "root"权限访问,而在Android平台中,我们启动的每个“Activity”都是使用不同的“user”权限,所以我们需要用“chmod”命令来改变默认权限:
#chmod 777 databases
#ls -l
drwxrwxrwx root 2010-04-21 20:33 databases
drwxr-xr-x sysem 2010-04-21 20:31 lib
有了存放数据库的文件夹,可以开始创建数据库。使用“sqlite3”来创建
#cd databases
#sqlite3 note.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite>
现在这个数据库还是空的,里面没有存储任何数据或记录。当执行“sqlite3”命令后,命令提示符从#换成“sqlite>”,表示进入“SQLite”互动模式,可以做添加,删除,修改,查询等动作。
我们可以输入一下命令来创建table。
sqlite> CREATE TABLE dictionary (word VARCHAR(30), pronounce VARCHAR(50), comment NVARCHAR(100));
注意,SQLite命令和java代码一样,大小写代表不同符号,而且以分号结尾。sqlite3与许多SQL数据库软件
不同的是,它不在乎字段属于哪一种资料型态:sqlite3的字段可以储存任何东西:文
字、数字、大量文字(blub),它会在适时自动转换。
输入以上命令后,可以用一下命令来验证是否创建成功,这命令作用是列出目录下所有SQLite的数据库列表:
sqlite>.databases
seq name file
----- -------- ------------------------------------------------------------------------
0 main /data/data/com.wenjie.android.dictionary/databases/dictionary.db
“.table” 用来列出所有tables。
sqlite>.table
dictionary
".schema"用来现实出创建数据表的命令。
sqlite>.schema
CREATE TABLE dictionary (word VARCHAR(30), pronounce VARCHAR(50), comment NVARCHAR(100));
若有多个数据表,也可以在".schema"后面输入特定的数据表当参数,如".schema dictionary",这样只会打印出对应的数据表创建命令。
Apr 18, 2010
1. 进入到F:\Android\android-sdk_r05-windows\android-sdk-windows\tools 以后,
2. 应该使用adb push命令将硬盘上的文件复制到android AVD 的某个应用程序的databases文件夹下,执行命令如下:
adb push F:\en.txt data/data/com.wenjie.android.dictionary/databases
=>758 KB/s(813441 bytes in 1.046s)
3. 在AVD是运行的状态下,按着以下步骤:
(1) 运行输入 adb shell
(2) 进入命令界面后 输入 ls 指令 会列出文件的目录
(3) cd 进入你想要的目录里
(4) 一层一层进去后会发现 databases目录 你的数据文件就在这个目录下放着
(5) sqlite3 test (test就是你创建的数据库的名称 注意:不要加.db 后缀)
(6) 现在你就进入你创建的test数据库了使用 .tables 就可以查看所有的表了;
***************************************************************
adb shell
#cd /data/data/<package_name>/databases
# find data -name "*.db" -print
data/data/com.google.android.providers.contacts/databases/contacts.db
data/data/com.google.android.providers.googleapps/databases/accounts.db
data/data/com.google.android.providers.im/databases/im.db
data/data/com.google.android.providers.media/databases/media.db
data/data/com.google.android.providers.telephony/databases/mms.db
data/data/com.google.android.providers.telephony/databases/sms.db
data/data/com.google.android.providers.telephony/databases/telephony.db
data/data/com.google.android.providers.settings/databases/settings.db
data/data/com.google.android.maps/databases/maps.db
data/data/com.wenjie.android.dictionary/dictionary.db
or
#ls
com.wenjie.android.dictionary
com.android.camera
:
:
com.android.browser
#cd com.wenjie.android.dictionary
cd com.wenjie.android.dictionary
#ls
databases (** 只有databases这个文件夹)
#cd databases
cd databases
#ls
dictionary.db (**只有dictionary.db文件)
#sqlite3 dictionary.db
SQLite version 3.5.0
Enter ".help" for instructions
sqlite> .separator "|"
sqlite> .import en.txt dictionary
(**en.txt成功导入到dictionary.db)
其他sqlite的特别用法
1. 建立索引
如果资料表有相当多的资料,我们便会建立索引来加快速度。好比说:
create index film_title_index on film(title);
意思是针对film资料表的name字段,建立一个名叫film_name_index的索引。这个指
令的语法为
create index index_name on table_name(field_to_be_indexed);
一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的操作
都是在幕后自动发生的,无须使用者特别指令。
2. sqlite可以在shell底下直接执行命令:
sqlite3 film.db "select * from film;"
输出 HTML 表格:
sqlite3 -html film.db "select * from film;"
将数据库“倒出来”:
sqlite3 film.db ".mp" > output.sql
利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库
备份了):
sqlite3 film.db < output.sql
在大量插入资料时,你可能会需要先打这个指令:
begin;
插入完资料后要记得打这个指令,资料才会写进数据库中:
commit;
Jun 26, 2010
利用空余的时间终于搞成了电子词典的部分功能。但是遇到以下问题:
(1).当要利用插入功能插入新单词是爆出如下问题:
android.database.sqlite.SQLiteException: error code 8: attempt to write a readonly database
原因是没有给SQLite数据库文件所在文件夹对应用户的读写权限。
#ls -l dictionary.db
-rw-r--r-- root root 5120 2010-05-09 14:32 dictionary.db
然后把权限改了就没有问题了。
#chmod 777 dictionary.db
chomod 777 dictionary.db
#ls -l dictionary.db
-rwxrwxrwx root root 5120 2010-05-09 14:32 dictionary.db
Ⅷ android sqlite怎么批量插入数据
解决方法:
添加事务处理,把5000条插入作为一个事务
dataBase.beginTransaction(); //手动设置开始事务
//数据插入操作循环
dataBase.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
dataBase.endTransaction(); //处理完成
将数据库“倒出来”:
sqlite3 film.db ".mp" > output.sql
利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库
备份了):
sqlite3 film.db < output.sql
在大量插入资料时,你可能会需要先打这个指令:
begin;
插入完资料后要记得打这个指令,资料才会写进数据库中:
commit;
Ⅸ android开发怎么把sqlite数据库导入真机
1、运行输入 adb shell (前提是模拟器正在运行)。
2、进入命令界面后 输入 ls 指令 会列出文件的目录。
3、cd 进入你想要的目录里。
4、一层一层进去后会发现 databases目录 你的数据文件就在这个目录下放着。
5、sqlite3 test (test就是你创建的数据库的名称 注意:不要加.db 后缀)。
6、现在你就进入你创建的test数据库了使用 .tables 就可以查看所有的表了。