swift FMDB增删改查,数据迁移

XCode新建工程,下载第三方FMDB导入工程

https://github.com/ccgus/fmdb


编译成功后开始创建数据库

第一步:创建数据库

var path : String?


path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first //数据库存储路径

        path = path! + "/fmdbDemo.sqlite" //数据库名称

        fmdb = FMDatabase.init(path: path)


第二步:建表


if fmdb.open() {

            let sql = "create table  t_ball(id integer primary key autoincrement,name text not null,age integer ,score real default 59.0)"

            let result = fmdb.executeUpdate(sql, withArgumentsIn: any)

            if result {

                print("创建表成功")

            }

        }else{

            print("打开数据库失败")

        }


至此,本地数据库创建完成,接下来是对数据库的相关操作

添加数据

let sql = "insert into t_ball (name,age,score,sex) values ('Batac',20,100,'boy')"

        let result = fmdb.executeUpdate(sql, withArgumentsIn: any)

        if result {

            print("插入成功")

        }


修改数据

let sql = "update t_ball set name='Batac',age='22',score='95',sex='girl'"

        let result = fmdb.executeUpdate(sql, withArgumentsIn: any)

        if result {

            print("修改成功")

        }


删除数据

let sql = "delete from t_ball where name = 'Batac'"

        let result = fmdb.executeUpdate(sql, withArgumentsIn: any)

        if result {

            print("删除成功")

        }


根据条件查询数据

let sql = "select * from t_ball where name = 'Batac'"

        let result = fmdb.executeQuery(sql, withArgumentsIn: any)

        while (result?.next())! {

            let name = result?.object(forColumn: "name")

            let age = result?.int(forColumn: "age")

            let score = result?.int(forColumn: "score")

            let sex = result?.object(forColumn: "sex")

            

            print("name = \(String(describing: name)),age = \(String(describing: age)),score = \(String(describing: score)),sex = \(String(describing: sex))")

        }


项目有时要在数据库添加数据,此时要用到数据迁移,以添加键值为例(以下为数据库添加sex属性)

if !fmdb.columnExists("sex", inTableWithName: "t_ball") {

            let sql = "alter table t_ball add sex text"

            let result = fmdb.executeUpdate(sql, withArgumentsIn: any)

            if result {

                print("更新数据库成功")

            }

        }



你可能感兴趣的:(Swift)