iOS FMDB之FMDatabaseQueue的使用总结

前言

最近项目中使用到 FMDatabaseQueue ,很久没有用过了,最近踩了不少坑,今天把它整理出来。个人觉得手机端处理这种数据库,还是麻烦的,调试起来非常麻烦,所以还是按照规范 一点一点写数据库代码,少走弯路。

第一步创建数据库
private var databaseQueue:FMDatabaseQueue = FMDatabaseQueue(path:pathName)!

此处可以创建一个单利 整个程序运行周期都用这一个FMDatabaseQueue

第二步创建数据库表
let sql = "create table if not exists TableName(id int,name text,age text);"
        self.databaseQueue.inDatabase { (database) in
            do{
                try database.executeUpdate(sql, values:nil)
            }catch{
                print("表创建失败")
            }
        }
self.databaseQueue.inDatabase { (database) in
            let sql = "insert into TableName (id,name,age) values(?,?,?)"
            do{
                 try database.executeUpdate(sql, values: [0,"晨光",25])
            }catch{
                print("数据插入失败")
            }
        }
self.databaseQueue.inDatabase { (database) in
     let sql = "delete from TableName where id=(?)"
     let result = database.executeUpdate(sql, withArgumentsIn: [0])
     if result{
          print("删除成功")
     }
}
 self.databaseQueue.inDatabase { (database) in
            let sql = "update TableName set name=(?) where id=(?)"
            let result:Bool = database.executeUpdate(sql, withArgumentsIn: ["晨光new",0])
            if !result{
                print("更新失败")
            }
        }

条件查询

let sql = "select * from TableName where id=(?)"
databaseQueue.inDatabase { (database) in
     do{
     	let result:FMResultSet = try database.executeQuery(sql, values: [0])
	    while result.next(){
        	if result.int(forColumn: "id") != nil{
        		let id = result.int(forColumn: "identifier")!
       		}
       		if result.string(forColumn: "name") != nil{
       			let name = result.int(forColumn: "name")!
       		}
     }
     }catch{
              print("查询失败")
     }
 }

条件查询

self.databaseQueue.inDatabase { (database) in
let sql = "select * from TableName"
do{
	let result:FMResultSet = try database.executeQuery(sql, values:nil)
	while result.next(){
		if result.int(forColumn: "id") != nil{
        		let id = result.int(forColumn: "identifier")!
       	}
      	if result.string(forColumn: "name") != nil{
       		let name = result.int(forColumn: "name")!
       	}
 	}
	}catch{
		print("查询失败")
	}
}
总结

工作总常用的也就是 这些 增删改查 至于事务的 没用过 以后用到了再补上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值