UI 19 数据库的练习

对于电影做操作,在点击收藏时, 判断其是否被收藏.

并且删除, 插入喜爱的电影.

新建一个DataBaseTool

#import <Foundation/Foundation.h>
#import <sqlite3.h>
#import "MovieModel.h"

typedef NS_ENUM(NSUInteger, SelectInTable) {
    inTable,
    NotInTable,
    SelectError,
};

@interface DataBaseTool : NSObject
{
    sqlite3 *dbPoint;
}

+ (DataBaseTool *)shareDataBaseTool;
// 打开数据库
//- (void)openDB;
//- (void)createTable;

- (SelectInTable)isSaveWithMovie:(MovieModel *)movie;
- (void)insertDataWithMovie:(MovieModel *)movie;
- (void)deleteDataWithMovie:(MovieModel *)movie;

内部实现:

#import "DataBaseTool.h"

@implementation DataBaseTool

+ (DataBaseTool *)shareDataBaseTool{
    static DataBaseTool *dataTool;
    static dispatch_once_t oneToKen;
    dispatch_once(&oneToKen, ^{
        dataTool = [[DataBaseTool alloc] init];
        [dataTool openDB];
        [dataTool createTable];

    });
    return dataTool;
}

- (void)openDB{

    NSArray *sandBox = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *sandBoxPath = sandBox[0];
    NSString *document = [sandBoxPath stringByAppendingPathComponent:@"Favorite.sqlite"];

    int result = sqlite3_open([document UTF8String], &dbPoint);

    if (result == SQLITE_OK) {
        NSLog(@"数据库打开成功!");
    }else{
        NSLog(@"数据库关闭成功!");
    }
}

- (void)createTable{

    NSString *sqlStr = @"create table if not exists movie (number integer primary key autoincrement, movieID text, movieName text, pic_url text)";
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"电影表创建成功!");
    }else{
        NSLog(@"电影表创建失败!%d",result);
    }
}

- (SelectInTable)isSaveWithMovie:(MovieModel *)movie{
    NSString *sqlStr =[NSString stringWithFormat:@"select * from movie where movieID = ‘%@‘",movie.movieID];
    sqlite3_stmt *stmt = nil;
    int result = sqlite3_prepare_v2(dbPoint, [sqlStr UTF8String], -1, &stmt, nil);
    if (result == SQLITE_OK) {
        NSLog(@"查询成功!");
        if (sqlite3_step(stmt) == SQLITE_ROW) {
            return inTable;
        }else{
            return NotInTable;
        }
    }else{
        NSLog(@"查询失败!");
    }
    return SelectError;
}

- (void)insertDataWithMovie:(MovieModel *)movie{

    NSString *sqlStr = [NSString stringWithFormat:@"insert into movie (movieID, movieName, pic_url)values (‘%@‘,‘%@‘,‘%@‘)",movie.movieID, movie.movieName, movie.pic_url];
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"加入成功");
    }else{
        NSLog(@"加入失败!");
    }

}

- (void)deleteDataWithMovie:(MovieModel *)movie{

    NSString *sqlStr = [NSString stringWithFormat:@"delete from movie where movieID = ‘%@‘",movie.movieID];
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"删除成功!");
    }else{
        NSLog(@"删除失败!");
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-29 19:10:51

UI 19 数据库的练习的相关文章

linux(centOS6) 安装Mysql 5.6.19数据库步骤、 问题以及相应的解决办法

数据库版本:Ver 14.14 Distrib 5.6.19, for Linux (x86_64) using  EditLine wrapper linux版本: Linux version 2.6.32-279.el6.x86_64 ([email protected]) (gcc ve rsion 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 12:19:21 UTC 20 12 采用的rpm安装方式. 1.官网下载

手把手教你在win10系统上安装、配置MySQL 5.7.19数据库

关于数据库这个东东,可能还有很多小伙伴没有接触过,这里简单说一下吧,数据库就是按照数据结构来组织.存储.管理数据的仓库,它可以高效的存储和管理数据,用途及其广泛,比如网站建设开发.软件应用开发等领域,我们常见的数据库有Access.Sqlserver.Mysql.Oracle等,今天亦是美网络小编给大家介绍的是mysql数据库,因为网络上80%以上的网站采用的是PHP+Mysql的搭配组合,想要学习网站建设开发,不了解Mysql数据库是说不过去的哦! 首先下载最新版MySQL数据库安装包,官网下

源码安装mysql 5.7.19数据库

1.系统要求 mount /dev/cdrom /mnt yum install -y cmake,make,gcc,gcc-c++,bison, ncurses,ncurses-devel 2.创建用户和组 groupadd mysql useradd -g mysql mysql 3.创建数据库安装目录 mkdir /mysql /mysql/data /mysql/log chown -R mysql:mysql  /mysql /mysql/data  --数据库目录 /mysql/lo

UI进阶 数据库 SQLite

1.数据库管理系统 SQL:SQL是Structured Query Language(结构化查询语言)的缩写. SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 常见的数据库管理系统 MySQL:MySQL是一个精巧的SQL数据库管理系统,而且是开源的数据管理系统.MySQL 主要目标是快速.健壮和易用.由于它的强大功能.灵活性.丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐. Oracle:Oracle Database,又

6.19数据库的索引

1,索引在数据库中的定义,数据库中专门用于帮助用户快速查找数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置吗,然后直接获取. 2,索引在数据库中作用约束和加速查找. 3,常见的几种索引: - 普通索引 - 唯一索引 - 主键索引 - 联合索引(多列) - 联合主键索引 - 联合唯一索引 - 联合普通索引 无索引: 从前往后一条一条查询 有索引:创建索引的本质,就是创建额外的文件(某种格式存储,查询的时候,先去格外的文件找,定好位置,然后再去原始表中直接查询.

C#如何定制Excel界面并实现与数据库交互

Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理.统计分析和辅助决策操作,广泛地应用于管理.统计财经.金融等众多领域.(另外,Excel还是伦敦一所会展中心的名称)..NET可以创建Excel Add-In对Excel进行功能扩展,这些扩展的功能包括自定义用户函数,自定义UI,与数据库进行数据交互等. 一 主要的Excel开发方式 1 VBA  VBA是一种Visual Basic的宏语言,它是最早的Office提供定制化的一种解决方案,VBA是VB的一个子集,和Vis

PostgresSQL数据库安装及操作

PostgreSQL介绍 PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS). 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们. PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发. 它不受任何公司或其他私人实体控制. 它是开源的,其源代码是免费提供的. PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft W

分享20个最新的免费 UI 设计素材给设计师

用户界面设计涉及到很多的创意,灵感以及需要与客户进行有效沟通的技能.良好的用户界面是一致的,可以使网站更容易理解和使用.UI设计的重点在于用户体验和互动,同时易于使用对于一个成功的移动应用程序来说非常重要.在这篇文章中,我们收集了20个最新的免费 UI 设计素材给设计师. 您可能感兴趣的相关文章 Web 前端开发人员和设计师必读精华文章推荐 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQuery 动画插件 8个

Android之数据库

1.DBAdapter类:? ? 1 package com.cnzcom.android.quickdial; 2 3 ?import android.content.ContentValues; 4 ?import android.content.Context; 5 import android.database.Cursor; 6 import android.database.SQLException; 7 import android.database.sqlite.SQLiteDa