问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何批量导入数据到Sqlite数据库

发布网友 发布时间:2022-04-25 23:39

我来回答

3个回答

懂视网 时间:2022-04-30 09:38

makr 插入数据 - (void)insetIntoTableWithID:(int)nameID withName:(NSString *)name withSex:(NSString *)sex withBook:(Book *)abook { // 对abook进行归档(先归档) NSMutableData *data = [NSMutableData data]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; [archiver encodeObject:abook forKey:abook.bookName]; // abook.bookName***key不能一样否则会覆盖 [archiver finishEncoding]; // sql语句 NSString *sqlString = [NSString stringWithFormat:@"INSERT INTO ‘user_hh‘(‘id‘,‘name‘,‘sex‘,‘book‘)VALUES(?, ?, ?,?)"]; sqlite3_stmt *stmt = nil; int result = sqlite3_prepare(db, [sqlString UTF8String], -1, &stmt, NULL); if (result == SQLITE_OK) { // 绑定字段 // sql里面写了字段,字段从一开始 sqlite3_bind_int(stmt, 1, nameID); sqlite3_bind_text(stmt, 2, [name UTF8String], -1, NULL); sqlite3_bind_text(stmt, 3, [sex UTF8String], -1, NULL); sqlite3_bind_blob(stmt, 4, [data bytes], (int)[data length], NULL); // 执行 sqlite3_step(stmt); } // 结束 sqlite3_finalize(stmt); // 插入语句 /* NSString *insertSql = [NSString stringWithFormat:@"INSERT INTO ‘user_hh‘(‘id‘,‘name‘,‘sex‘,‘book‘)VALUES(‘%d‘, ‘%@‘, ‘%@‘,‘%@‘)",nameID,name,sex,data]; // 执行SQL语句 int result = sqlite3_exec(db, [insertSql UTF8String], NULL, NULL, NULL); if (result == SQLITE_OK) { NSLog(@"插入成功"); }else{ NSLog(@"插入失败"); } */ }

2.查询数据库

#pragma mark 查询数据库
- (void)selectDataFromTable
{

 NSString *selectSql = [NSString stringWithFormat:@"SELECT *FROM ‘user_hh‘"];
 
 // 保存查询到的结果集
 sqlite3_stmt *stmt = nil;
 // 准备查询数据(预存取)
 int result = sqlite3_prepare(db, [selectSql UTF8String], -1, &stmt, NULL);
 if (result == SQLITE_OK) {
 
 // 判断是否是最后一行,有没有必要继续下去
 // 这里用while循环 一行一行执行 ******不用if******
 while(sqlite3_step(stmt) == SQLITE_ROW) {
  // 拿出各列的数据
  
  // 1.拿出id列的数据
  int numberID = sqlite3_column_int(stmt, 0);
  
  // 2.拿出name列的数据
  const unsigned char *nameChar = sqlite3_column_text(stmt, 1);
  NSString *name = [NSString stringWithUTF8String:(const char *)nameChar];
  
  // 3.拿出sex列的数据
  const unsigned char *sexChar = sqlite3_column_text(stmt, 2);
  NSString *sex = [NSString stringWithUTF8String:(const char *)sexChar];
  
  // 4.拿出BOOK列 ******桥接******
  
  // NSData *data = (__bridge NSData *)(sqlite3_column_blob(stmt, 3));
  const void *bytes = (sqlite3_column_blob(stmt, 3));
  int length = sqlite3_column_bytes(stmt, 3);
  NSData *data = [[NSData alloc] initWithBytes:bytes length:length];
  
  // 反归档
  NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  Book *thisBook = [unArchiver decodeObjectForKey:@"西游记"];
  [unArchiver finishDecoding]; // 结束反归档
  
  NSLog(@"%d %@ %@ %@",numberID,name,sex,thisBook.bookName);
 }
 
 // 结束查询 --- 重要 ****** 否则无法关闭数据库******
 sqlite3_finalize(stmt);
 }
}

3.这里BOOK类对属性需要编码和反编码(NSCoding协议)

-(void)encodeWithCoder:(NSCoder *)aCoder
{

 [aCoder encodeObject:self.bookName forKey:@"bookName"];
 
}
-(id)initWithCoder:(NSCoder *)aDecoder
{

 self = [super init];
 if (self) {
 self.bookName = [aDecoder decodeObjectForKey:@"bookName"];
 }
 return self;
}

 

SQLite数据库---将复杂对象存入数据库

标签:

热心网友 时间:2022-04-30 06:46

具体的操作步骤如下:
首先,用Access打开mdb文件。导出成txt文件,由于本人的SQLite是在linux下使用,所以编码要改成Unicode,分隔符用逗号分割(逗号分割是为了后期导入到SQLite中)
第二步,将文件导入到linux系统下通过终端sqlite3abc.db
SQLiteversion3.6.22
Enter".help"forinstructions
EnterSQLstatementsterminatedwitha";"sqlite
进入一个已经建好的数据库中
sqliteCREATETABLEeee(idINTEGERPRIMARYKEY,
numberNUMERIC,codeNUMERIC,cityTEXT,citytypeTEXT);
创建一个表,这个表的字段和数据类型要和txt文件中的数据和数据类型相对应。
sqlite.separator","//设置分割符为逗号,和之前导出设置的分隔符保持一致
sqlite.importlist.txteee//将list.txt上的内容导入到表eee中
到此,已成功地将批量数据插入到SQLite中了。

热心网友 时间:2022-04-30 08:04

一、用sqlite命令
  以windows系统为例,linux下命令是一样的。
  1.安装sqlite工具包
  首先要安装有sqlite工具包,怎么判断安装了呢?一个简单的方法就是,在命令行里,敲sqlite3,出现下面信息:
  
  则说明安装了。如果没有安装,可以百度一下。
  2.打开一个数据库
  在命令行里敲入:sqlite3 数据库,例如:sqlite3 test.db:
  
  如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库已经存在,则会打开这个数据库。如上图,数据库test.db就成功打开了。
  3.更改分隔符
  如图:
  
  默认的分割符号是|,更改命令是:.separator 分隔符,回车。
  4.导入数据

  命令:.import 文件名 表名,比如.import G:/data/temp.txt student。

  这里要说明的是,数据库的字符编码一般默认是UTF-8,如果数据库的中文字符是乱码,则在编辑好的txt文件用UE转换成UTF-8,再导入即可。

  二、用SQLite Export工具

  

  如图所示,这里编码选用默认,文本里不用更改为UTF-8,导入的数据不为乱码。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
哪个牌子复印机好 复印店用什么型号的复印机好 开复印店需要什么设备 家用打印复印机哪个好 如何分辨鞋底是不是空心格子底? Ubuntu10.04下安装Oracle11g 超市监控多少钱 超市防盗器要多少钱 超市防盗系统多少钱 智能存放柜管理系统 48小时核酸检测结果在哪里查询-48小时核酸检测怎么看结果 请问Delphi 2010中怎么使用(安装)Sqlite数据库? 在ubantu虚拟机里怎么安装sqlite sqlite数据库从安装到使用的方法,因为我看了之后不知道要不要安装了 sqlite怎么安装 315产品查询网站是什么 什么是网上315? 315消费电子投诉网为什么登陆不上去呢? 我在315消费者网站进行了投诉,请问怎么撤诉啊! 315产品查询网站是什么? 315消费网可靠吗? 315消费电子投诉网的介绍 宁波跑滴滴要办理什么证件 在杭州跑滴滴需要办证吗? 现在想跑滴滴需要办理什么证? 这段时间孩子耳朵老是流黄水,还发臭,都影响他学习了,现在寒假期间前想问下怎么治? 耳朵里面经常流黄水有臭味,怎么办,可以治愈吗? 耳朵最里面有少量黄水有臭味用棉球吸了就没了。这可不可以自愈。不痛不痒但有点点不适感,喜欢噜鼻掏耳 耳朵里面有黄水 很臭怎么治 耳朵流黄水有臭味用什么药 一个合格的室内设计师需要具备哪些能力 如何将SQLITE数据库文件打包到程序安装包里? 怎么把已有的数据库sqlite 求指导:android中数据库sqlite的安装路径 手机上安装怎样安装sqlite,需要哪些文件,是直接在手机上操作,不要用... 如何实现在APK安装过程中,就创建SQLITE数据库 如何在WindowsPhone8.1中引用SQLite数据库 如何让Navicat for SQLite 连接Sqlite数据库 Navicat怎么连接Sqlite数据库 如何用sqlite3 如何用SQLite Developer导入数据库文件 如何使用Sqlite Expert创建Sqlite数据库 iphone8p用来当备用机好吗 dnf无尽的祭坛怎么进入 dnf无尽的祭坛在哪 dnf无尽的祭坛怎么走 DNF无尽的祭坛任务在哪接? DNF无尽的祭坛多少级才可以刷啊?去哪里刷 DNF祭坛怎么去? DNF关于无尽的祭坛的任务在哪接 dnf无尽的祭坛在哪?我找不到