美文网首页
SQL二维码跳转存值

SQL二维码跳转存值

作者: 捏兜兜 | 来源:发表于2017-10-25 15:28 被阅读0次

    DataBase 。h

    #import#import "Yly.h"#import@interface SqliteData : NSObject

    // 定义全局变量

    {

    sqlite3 *db;

    }

    // 单例方法

    +(instancetype)initData;

    // 初始化数据库

    -(void)initSqlData;

    // 初始化数据库表格

    -(void)initSqlTableData;

    // 添加数据

    -(void)addSqlData:(Yly *)data;

    // 修改数据

    -(void)changeSqlData:(Yly *)data;

    // 删除数据

    -(void)deleteSqlData:(NSInteger)deleData;

    // 查询数据

    -(NSMutableArray *)showSqlAllArr;

    // 关闭数据库

    -(void)closeSqlData;

    sqlData (DataBase)

    #import "SqliteData.h"

    // 定义一个静态变量

    static SqliteData *sql = nil;

    @implementation SqliteData

    // 单例方法

    +(instancetype)initData

    {

    if (!sql) {

    sql = [[SqliteData alloc] init];

    }

    return sql;

    }

    // 初始化数据库

    -(void)initSqlData

    {

    // 创建沙盒路径

    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    // 拼接

    NSString *newPath = [path stringByAppendingString:@"/1511E.db"];

    NSLog(@"-------------%@",newPath);

    // 判断

    if (sqlite3_open([newPath UTF8String], &db) == SQLITE_OK) {

    NSLog(@"数据库打开成功");

    [self initSqlTableData];

    }else{

    NSLog(@"数据库打开失败");

    }

    }

    // 初始化数据库表格

    -(void)initSqlTableData

    {

    // 创建sql语句

    const char *sql = "create table if not exists Ylys(ylyID integer primary key, pathStr text, textPath text)";

    // 预编译指针

    sqlite3_stmt *stmt;

    // 打开数据库接口

    sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

    // 判断

    if (sqlite3_step(stmt) == SQLITE_DONE) {

    NSLog(@"数据库表格打开成功");

    }else{

    NSLog(@"数据库表格打开失败");

    }

    // 销毁接口

    sqlite3_finalize(stmt);

    }

    // 添加数据

    -(void)addSqlData:(Yly *)data

    {

    // 添加 sql 语句

    const char *sql = "insert into Ylys values(null, ?, ?)";

    // 预编译指针

    sqlite3_stmt *stmt;

    // 打开数据库接口

    sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

    // 绑定数据库接口

    sqlite3_bind_text(stmt, 1, [data.pathStr UTF8String], -1, SQLITE_TRANSIENT);

    sqlite3_bind_text(stmt, 2, [data.textPath UTF8String], -1, SQLITE_TRANSIENT);

    // 执行预编译接口

    sqlite3_step(stmt);

    // 销毁接口

    sqlite3_finalize(stmt);

    }

    // 修改数据

    -(void)changeSqlData:(Yly *)data

    {

    // 修改 sql 语句

    const char *sql = "update Ylys set pathStr = ?, textPath = ? where ylyID = ?";

    // 预编译指针

    sqlite3_stmt *stmt;

    // 打开数据库接口

    sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

    // 绑定数据库接口

    sqlite3_bind_text(stmt, 1, [data.pathStr UTF8String], -1, SQLITE_TRANSIENT);

    sqlite3_bind_text(stmt, 2, [data.textPath UTF8String], -1, SQLITE_TRANSIENT);

    // 绑定主键 id

    sqlite3_bind_int(stmt, 3, (int)(data.ylyID));

    // 执行预编译指针

    sqlite3_step(stmt);

    // 销毁接口

    sqlite3_finalize(stmt);

    }

    // 删除数据

    -(void)deleteSqlData:(NSInteger)deleData

    {

    // 删除 sql 语句

    const char *sql = "delete from Ylys where ylyID = ?";

    // 预编译指针

    sqlite3_stmt *stmt;

    // 打开数据库接口

    sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

    // 删除主键 id

    sqlite3_bind_int(stmt, 1, (int)(deleData));

    // 执行预编译指针

    sqlite3_step(stmt);

    // 销毁接口

    sqlite3_finalize(stmt);

    }

    // 查询数据

    -(NSMutableArray *)showSqlAllArr

    {

    // 查询 sql 语句

    const char *sql = "select * from Ylys";

    // 预编译指针

    sqlite3_stmt *stmt;

    // 打开数据库接口

    sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

    // 创建数组

    NSMutableArray *arr = [NSMutableArray array];

    while (sqlite3_step(stmt) == SQLITE_ROW) {

    // 初始化类

    Yly *yyy = [[Yly alloc] init];

    // 找到主键id

    yyy.ylyID = sqlite3_column_int(stmt, 0);

    yyy.pathStr = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];

    yyy.textPath = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)];

    // 将数据添加到数组

    [arr addObject:yyy];

    }

    // 销毁接口

    sqlite3_finalize(stmt);

    // 返回 数组

    return arr;

    }

    // 关闭数据库

    -(void)closeSqlData

    {

    sqlite3_close(db);

    }

    // 按钮的点击事件

    -(void)didClickBtn:(UIButton *)sender

    {

    imgView.image = [QRCodeGenerator qrImageForString:tf.text imageSize:imgView.frame.size.width];

    // 转换图片格式

    NSData *imgData = UIImagePNGRepresentation(imgView.image);

    // 获取沙盒路径

    NSString *paths= [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];

    // 拼接图片的文件路径

    NSString *imageFilePath = [NSString stringWithFormat:@"%@/%@.png",paths,tf.text];

    NSLog(@"%@", [imgData writeToFile:imageFilePath atomically:YES]?@"存储成功":@"存储失败");

    NSLog(@"0000-----======%@",imageFilePath);

    Message *yly = [[Message alloc] init];

    yly.pathStr = imageFilePath;

    yly.textPath = tf.text;

    [[SqliteData initData] initSqlData];

    [[SqliteData initData] addSqlData:yly];

    [[SqliteData initData] closeSqlData];

    }

    UITwoViewController

    // 设置 内容

    [[SqliteData initData] initSqlData];

    marr = [[SqliteData initData] showSqlAllArr];

    [[SqliteData initData] closeSqlData];

    [myTable reloadData];

    cell获取内容

    NSLog(@"===%@",[marr[indexPath.row] textPath]);

    cell.imageView.image = [UIImage imageWithContentsOfFile:[marr[indexPath.row] pathStr]];

    cell.textLabel.text = [marr[indexPath.row] textPath];

    相关文章

      网友评论

          本文标题:SQL二维码跳转存值

          本文链接:https://www.haomeiwen.com/subject/lejauxtx.html