SQLite.swift使用简单介绍

import UIKit

import SQLite

let ducumentPath = NSHomeDirectory() + "/Documents" + "/MMDB.sqlite"

class MMSQLite:NSObject{

    static let shared:MMSQLite=MMSQLite()

    var db: Connection!

    private override init() {

        db = try! Connection.init(ducumentPath)

    }

func operate() {

        //建表  不加?为NOTNULL,primaryKey:主键  unique:是否唯一

        let messageList =Table("messageList") 

        let create = messageList.create{ (builder) in

            builder.column(Expression("uid"),unique:false)

            builder.column(Expression("company_name"))

            builder.column(Expression("name"))

            builder.column(Expression("id"))

            builder.column(Expression("avatar"))

            builder.column(Expression("job_title"))

            builder.column(Expression("noticeId"),primaryKey:true)

            builder.column(Expression("content"))

            builder.column(Expression("create_time"))

            builder.column(Expression("state"))

            builder.column(Expression("ownerId"))

        }

        do{

            try db.run(create)

        }catch  {

            print(error.localizedDescription)

        }

        //导入数据 可用for循环批量导入

        let insert = messageList.insert(Expression("uid") <- 1,Expression("company_name") <- "company_name",Expression("name") <- "name",Expression("id") <- 2,Expression("avatar") <- "avatar",Expression("noticeId") <- 3,Expression("state") <- 4,Expression("job_title") <- "job_title",Expression("content") <- "content",Expression("create_time") <- "create_time",Expression("ownerId") <- 5)

        do{

            try db.run(insert)

        }catch  {


        }


        //查询 —— 所有数据


        var array = [Dictionary].init()

        do{

            //条件查询

            //for item in try db.prepare(Table("messageList").filter(Expression("ownerId") == 1)) {

            for item in try db.prepare(Table("messageList")) {

                var dic =Dictionary.init()

                dic.updateValue(item[Expression("id")] as NSNumber, forKey:"id")

                dic.updateValue(item[Expression("uid")] as NSNumber, forKey:"uid")

                dic.updateValue(item[Expression("state")] as NSNumber, forKey:"state")

                dic.updateValue(item[Expression("noticeId")] as NSNumber, forKey:"noticeId")

                dic.updateValue(item[Expression("name")] as String, forKey:"name")

                dic.updateValue(item[Expression("company_name")] as String, forKey:"company_name")

                dic.updateValue(item[Expression("avatar")] as String, forKey:"avatar")

                dic.updateValue(item[Expression("job_title")] as String, forKey:"job_title")

                dic.updateValue(item[Expression("content")] as String, forKey:"content")

                dic.updateValue(item[Expression("create_time")] as String, forKey:"create_time")

                array.append(dic)

            }

        }catch  {


        }

        //修改一个参数

        let updateItem =Table("messageList").filter(Expression("noticeId") ==3)

        do{

            if try db.run(updateItem.update(Expression("state") <-10))>0{

            }else{

            }

        }catch{

        }


        //修改多个参数

        let updateMoreItem =Table("messageList").filter(Expression("noticeId") ==3)

        do{

            iftrydb.run(updateMoreItem.update([Expression("state") <-10,Expression("name") <-  "newName"]))>0{

            }else{

            }

        }catch{

        }


        //删除

        let deleteItem =Table("messageList").filter(Expression("noticeId") ==3)

        //删除全部

        //let item = Table("messageList")

        do{

            if try db.run(deleteItem.delete()) >0{

            }else{

            }

        }catch  {

        }

    }

}

你可能感兴趣的:(SQLite.swift使用简单介绍)