Skip to content

Repository files navigation

SQLiteSwift

SQLiteSwift is a library written in Swift that makes it easy for you to deal with sqlite

CocoaPods

CocoaPods

platform :ios, '8.0'
use_frameworks!
target 'XXXX' do
pod 'SQLiteSwift'
end

How to use

Step 1

  • Make a Model
    classUser:SSMappable{staticvartable:String="User" // Table Name
    varid:Int? // INTEGER Column
    varname:String? // TEXT Collumn
    varage:Int?varnickname:String?varisMan:Bool? // INTEGER Column
    requiredinit(){}func dbMap(connector:SSConnector){
    // id column primarykey, autoincrement, notnull attribute
    id <-connector["id",.PrimaryKey,.AutoIncrement,.NotNull]
    // name column unique attribute
    name <-connector["name",.Unique]
    // age column check attribute
    age <-connector["age",.Check("age>0")]
    // nickname column default attribute
    nickname <-connector["nickname",.Default("None")]
    // isMan column auto convert INTEGER(SQLite) <=> Bool(Swift)
    isMan <-connector["isMan"]}

}


### Step2
* CREATE TABLE
~~~swift
let createTable:SSResult<User> = SQLiteConnection(filePath: dbFilePath).createTable() //make 'User' Table
if createTable.result {
print("correct!! make a table")
}else {
print("failed to make a table")
}
  • INSERT

    letuser=User()
    user.name ="takashi"
    user.age =27
    user.nickname ="takayan"
    user.isMan =trueletinsert:SSResult<User>=SQLiteConnection(filePath: dbFilePath).insert(user) // insert user row
  • SELECT

    lettable:SSTable<User>=SQLiteConnection(filePath: dbFilePath).table() // select User table
    foruserin table.records {print(user.name,user.age,user.nickname, user.isMan)}
  • UPDATE

    lettable:SSTable<User>=SQLiteConnection(filePath: dbFilePath).table()letmodel= table.records[0]
    model.age =30
    model.isMan =falseletupdate:SSResult<User>=SQLiteConnection(filePath: dbFilePath).insert(user) // update user row
  • DELETE

    lettable:SSResult<User>=SQLiteConnection(filePath: dbFilePath).table()letmodel= table.records[0]letdelete:SSResult<User>=SQLiteConnection(filePath: dbFilePath).delete(model) // delete user row
  • IsExistTable

    letisExistTable:SSResult<User>=SQLiteConnection(filePath: dbFilePath).isExistTable() // is Exist User table
    if isExistTable.result {print("Table is exist")}
  • DELETE TABLE

    letdeleteTable:SSResult<User>=SQLiteConnection(filePath: dbFilePath).deleteTable() // delete User table
    if deleteTable.result {print("delete table complete!!")}
  • Query

    letquery="SELECT name, age FROM User WHERE age>? AND age<?;"letvalues=[21,30]letresult:SSTable<User>=SQLiteConnection(filePath: dbFilePath).query(query, params: values)

More

  • Transaction Commit

    letconnect=SQLiteConnection(filePath: dbFilePath)
    connect.beginTransaction()
    // INSERT,DELETE,UPDATE using connect
    connect.commit()

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages