SQLite 的简单使用
程序运行结果如下 :
输入name和age,点击"确认插入"按钮,即插入一条记录到数据库.
程序代码如下:(有详细注释,相信大家都看得懂哈!!!)
//
// ViewController.m
// 02 SQLite的基本操作
//
// Created by mac1 on 15/10/6.
// Copyright (c) 2015年 www.iphonetrain.com. All rights reserved.
//
#import "ViewController.h"
//导入库文件
#import <sqlite3.h>
@interface ViewController ()
//姓名
@property (weak, nonatomic) IBOutlet UITextField *nameTextField;
//年龄
@property (weak, nonatomic) IBOutlet UITextField *ageTextField;
@property (nonatomic,assign)sqlite3 *db; //全局变量默认为NULL
//"确认插入"按钮
- (IBAction)insertAction;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//构建数据库的路径
NSString *dbFilePath = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents/test.db"];
//打印数据库保存路径
NSLog(@"dbFilePath = %@",dbFilePath);
//1.创建数据库,如果没有数据库,则会创建
_db = NULL;
int status = sqlite3_open(dbFilePath.UTF8String, &_db);
if (status == SQLITE_OK) {
NSLog(@"打开数据库成功!");
//2.创建表
char *errmsg = NULL;
sqlite3_exec(_db, "CREATE TABLE IF NOT EXISTS t_user (id integer PRIMARY KEY ,name text, age integer)", NULL, NULL, &errmsg);
if (errmsg) {
NSLog(@"创建表失败!");
}
}
//查询数据
[self queryData];
}
//"确认插入"按钮被点击
- (IBAction)insertAction {
//DML 插入
NSString *insertSql = [NSString stringWithFormat:@"INSERT INTO t_user (name,age) VALUES ('%@','%ld')",_nameTextField.text,[_ageTextField.text integerValue]];
//插入数据
char *error = NULL;
sqlite3_exec(_db, insertSql.UTF8String, NULL, NULL, &error);
if (error) {
NSLog(@"插入记录失败!");
}
}
//DQL 查询语句的使用
- (void)queryData{
//准备查询(检查sql语句的合法性)
//参数值-1 表示程序内部计算大小
sqlite3_stmt *stmt = NULL;
int status = sqlite3_prepare_v2(_db, "SELECT * FROM t_user", -1, &stmt, NULL);
//表示有数据
if (status == SQLITE_OK) {
//sqlite3_step(stmt) == SQLITE_ROW 当前stmt指向的数据有值
while (sqlite3_step(stmt) == SQLITE_ROW) {
//取出一条数据中的name字段中的值
const unsigned char *name = sqlite3_column_text(stmt, 1);
//取出一条数据中的age字段中的值
int age = sqlite3_column_int(stmt, 2);
NSLog(@"name = %s , age = %d",name,age);
}
}
}
@end
不过,对数据库的操作,一般使用第三方框架 FMDB 操作
下载地址 :https://github.com/ccgus/fmdb
SQLite 的简单使用的更多相关文章
- Win7下SQLite的简单使用
前言 SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎.SQLite 源代码不受版权限制. 简 ...
- 【SQLite】简单的基本使用步骤
SQLite介绍SQLite is a software library that implements a self-contained, serverless, zero-configuratio ...
- IOS下SQLite的简单使用
本文转载至 http://www.cnblogs.com/cokecoffe/archive/2012/05/31/2537105.html 看着国外网站的教程,写了一个小例子,一个联系人的程序,包括 ...
- Android SQLite 的简单实例
1.前言: 今天再一次去蹭了一下某老师的android课,这一次讲的是Android的SQLite的使用,老师当场讲解了他自己做的例子. 回来之后,我春心萌动,不得不拿着参考资料再做了一个类似的例子, ...
- SQLite的简单应用
安装部署 1)进入 SQL 下载页面:http://www.sqlite.org/download.html 2)下载预编译二进制文件包. Windows 环境的如下: 下载完之后,就算部署完成.(P ...
- Android学习笔记(SQLite的简单使用)
1.SQLite介绍 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且 ...
- sqlite性能简单測试
主要測试sqlite在大数据量下的插入及查询性能: 測试环境:Centos6.4 1G内存 单核 数据量 大小 索引字段检索(耗时) 非索引字段检索(耗时) 总插入时间 10W 19M 0.001 ...
- Android SQLite最简单demo实现(增删查改)
本来不太想写这篇博客的,但是看到网上的关于android数据库操作的博文都讲得很详细,对于像我这样的新手入门了解SQLite的基本操作有一定难度,所以我参考了网上的一些博客文章,并自己亲自摸索了一遍, ...
- Android基础之sqlite 数据库简单操作
尽管很简单,但是也存下来,以后直接粘过去就能用了. public class DBHelper extends SQLiteOpenHelper { private static final ...
- Android SQLite(1)简单示例-增,删,改,查
1.主要核心类,Sqlite编程要继承SQLiteOpenHelper import android.content.Context; import android.database.sqlite.S ...
随机推荐
- EditPlus编译运行java文件
ok ---------------两张图完成
- .netcore 打包发布到ubuntu linux上
使用命令行发布如下 cd NetCoreServerOne // project file place 项目文件 所在目录 dotnet build -r ubuntu.16.04-x6 ...
- 【安卓高级】ViewPager视差动画效果
在安卓开发中,是否遇见过一些很酷的视差动画效果,当ViewPager滑动下一页的时候,页面内的各种元素也能跟随滑动做位移效果,整体看起来非常有活力. 关键的PageTransformer PageTr ...
- IDEA八条配置修改
IDEA版本:IntelliJ IDEA 2019.2.1 x64 八条配置修改: 自动编译开关 忽略大小写开关 智能导包开关 悬浮提示开关 取消单行显示tabs的操作 项目文件编码 滚轴修改字体大小 ...
- Mysql存储过程查询数据插入别的表里。
DELIMITER// CREATE PROCEDURE setRoomManger2() BEGIN ); ; DECLARE cur CURSOR FOR SELECT roomid FROM n ...
- CF620E New Year Tree 线段树+dfs序+bitset
线段树维护 dfs 序是显然的. 暴力建 60 个线段树太慢,于是用 bitset 优化就好了 ~ code: #include <bits/stdc++.h> #define M 63 ...
- RS-232串口通信简介
1969年,美国电子工业协会将RS-232定为串行通信接口的电器标准,该标准定义了数据终端设备DTE(Date Teriminal Equipment)与数据通信设备DCE(Data Communic ...
- @Autowired 与@Resource的区别详解
spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...
- 10-5使用OpenType字体
http://www.missyuan.com/viewthread.php?tid=350835&extra=&page=1 现在当我们通过Photoshop.Word或其他应用程序 ...
- 【SPOJ】Longest Common Substring II
[SPOJ]Longest Common Substring II 多个字符串求最长公共子串 还是将一个子串建SAM,其他字符串全部跑一边,记录每个点的最大贡献 由于是所有串,要对每个点每个字符串跑完 ...