.m文件
<code><span class="hljs-comment">//</span>
<span class="hljs-comment">// DbUtils.m</span>
<span class="hljs-comment">// smart</span>
<span class="hljs-comment">//</span>
<span class="hljs-comment">// Created by 谢厂节 on 15/5/12.</span>
<span class="hljs-comment">// Copyright (c) 2015年 WHR. All rights reserved.</span>
<span class="hljs-comment">//</span>
<span class="hljs-preprocessor">#import <span class="hljs-title">"DbUtils.h"</span></span>
<span class="hljs-preprocessor">#import <span class="hljs-title">"KMTypes.h"</span></span>
<span class="hljs-preprocessor">#import <span class="hljs-title">"KMContents.h"</span></span>
<span class="hljs-class"><span class="hljs-keyword">@implementation</span> <span class="hljs-title">DbUtils</span></span>
<span class="hljs-comment">//打开数据库的方法</span>
- (<span class="hljs-keyword">void</span>)openDB{
<span class="hljs-comment">///文件是否存在</span>
<span class="hljs-built_in">NSFileManager</span>* fileManager = [<span class="hljs-built_in">NSFileManager</span> defaultManager];
<span class="hljs-built_in">NSString</span> *dbpath=[<span class="hljs-keyword">self</span> filePath];
<span class="hljs-built_in">NSLog</span>(@<span class="hljs-string">"database path:%@"</span>,dbpath);
<span class="hljs-built_in">BOOL</span> success = [fileManager fileExistsAtPath:dbpath];
<span class="hljs-keyword">if</span> (!success) {
<span class="hljs-built_in">NSString</span> *resourcePath=[[<span class="hljs-built_in">NSBundle</span> mainBundle]resourcePath];
<span class="hljs-comment">//自动复制</span>
<span class="hljs-built_in">NSString</span> *sourceDBPath=[resourcePath stringByAppendingPathComponent:@<span class="hljs-string">"app.bundle/datas.sqlite"</span>];
<span class="hljs-built_in">NSError</span> *error;
success = [fileManager copyItemAtPath:sourceDBPath toPath:dbpath error:&error];
<span class="hljs-keyword">if</span>(!success)
NSAssert1(<span class="hljs-number">0</span>,@<span class="hljs-string">"数据库附加失败!‘%@‘."</span>, [error localizedDescription]);
<span class="hljs-keyword">else</span>
<span class="hljs-built_in">NSLog</span>(@<span class="hljs-string">"数据库附加成功:%@"</span>,dbpath);
}
<span class="hljs-keyword">if</span> (sqlite3_open([[<span class="hljs-keyword">self</span> filePath] UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSAssert(<span class="hljs-number">0</span>, @<span class="hljs-string">"数据库打开失败。"</span>);
}
}
- (<span class="hljs-keyword">void</span>)closeDB{
sqlite3_close(db);
}
<span class="hljs-comment">//该方法用于返回数据库在Documents文件夹中的全路径信息</span>
- (<span class="hljs-built_in">NSString</span> *)filePath{
<span class="hljs-built_in">NSArray</span> *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, <span class="hljs-literal">YES</span>);
<span class="hljs-built_in">NSString</span> *documentsDir = [paths objectAtIndex:<span class="hljs-number">0</span>];
<span class="hljs-keyword">return</span> [documentsDir stringByAppendingPathComponent:@<span class="hljs-string">"datas.sqlite"</span>];
}
<span class="hljs-comment">////查询数据所有类别</span>
- (<span class="hljs-built_in">NSMutableArray</span> *)getAllTypes{
[<span class="hljs-keyword">self</span> openDB];
<span class="hljs-built_in">NSMutableArray</span> *array=[<span class="hljs-built_in">NSMutableArray</span> arrayWithCapacity:<span class="hljs-number">6</span> ];
<span class="hljs-built_in">NSString</span> *sql = @<span class="hljs-string">"SELECT * FROM km_types"</span>;
sqlite3_stmt *statement;
<span class="hljs-keyword">if</span> (sqlite3_prepare_v2(db, [sql UTF8String], -<span class="hljs-number">1</span>, &statement, <span class="hljs-literal">nil</span>) == SQLITE_OK) {
<span class="hljs-keyword">while</span> (sqlite3_step(statement) == SQLITE_ROW) {
KMTypes* k= [[KMTypes alloc]init];
<span class="hljs-keyword">int</span> type_id = (<span class="hljs-keyword">int</span>)sqlite3_column_int(statement,<span class="hljs-number">0</span>);
<span class="hljs-keyword">int</span> parent_id = (<span class="hljs-keyword">int</span>)sqlite3_column_int(statement,<span class="hljs-number">1</span>);
<span class="hljs-keyword">char</span> *type_title = (<span class="hljs-keyword">char</span> *)sqlite3_column_text(statement, <span class="hljs-number">2</span>);
<span class="hljs-keyword">int</span> type_order = (<span class="hljs-keyword">int</span>)sqlite3_column_int(statement,<span class="hljs-number">3</span>);
<span class="hljs-keyword">int</span> topic_count=(<span class="hljs-keyword">int</span>)sqlite3_column_int(statement,<span class="hljs-number">4</span>);
<span class="hljs-built_in">NSString</span> *type_titleStr = [[<span class="hljs-built_in">NSString</span> alloc] initWithUTF8String:type_title];
k<span class="hljs-variable">.type_title</span> = type_titleStr;
k<span class="hljs-variable">.type_id</span>=type_id;
k<span class="hljs-variable">.parent_id</span> = parent_id;
k<span class="hljs-variable">.type_order</span> = type_order;
k<span class="hljs-variable">.topic_count</span>=topic_count;
[array addObject:k];
}
sqlite3_finalize(statement);
}
[<span class="hljs-keyword">self</span> closeDB];
<span class="hljs-keyword">return</span> array;
}
<span class="hljs-keyword">@end</span>
这里只实现一个简单的查询功能。</code>
Mac 下使用sqlite3命令行
标签:sqlite3 ios ios6
本文系统来源:http://blog.csdn.net/xundh/article/details/46425833
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!