Create Database Programatically in swift

Create , Insert and Dispaly databse in swift.

import UIKit

struct SampleData {

let id : Int

let FirstName : String

let LastName : String

}

class DBManagerrr: NSObject {

let field_ID = "fieldID"
let field_Firstname = "fieldFirstName"
let field_LastName = "FieldLastName"

static let shared: DBManagerrr = DBManagerrr()

let databaseFileName = "databasee.sqlite"
var pathToDatabase: String!
var database: FMDatabase!

override init() {

super.init()

let documentsDirectory = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString) as String

pathToDatabase = documentsDirectory.appending("/\(databaseFileName)")

}

// Create Database

func createDatabase(tableName : String) {

if !FileManager.default.fileExists(atPath: pathToDatabase) {

database = FMDatabase(path: pathToDatabase!)

if database != nil {

if database.open() {

let createMoviesTableQuery = "create table \(tableName) (\(field_ID) INTEGER PRIMARY KEY AUTOINCREMENT, \(field_Firstname) text, \(field_LastName) text)"

do {

try self.database.executeUpdate(createMoviesTableQuery, values: nil)

print("Successfully create table.")

}

catch {

print("Could not create table.")

print(error.localizedDescription)

}

database.close()

}

else {

print("Could not open the database.")

}

}

}

}

// OPen database table

func openDatabase() -> Bool {

if database == nil {

if FileManager.default.fileExists(atPath: pathToDatabase) {

database = FMDatabase(path: pathToDatabase)

}

}

if database != nil {

if database.open() {

return true

}

}

return false

}

//Insert Database in to table

func insertSampleData(tableName : String,firstName : String, LastName : String) {

if openDatabase() {

var query = ""

query += "insert into \(tableName) (\(field_Firstname), \(field_LastName)) values ( '\(firstName)', '\(LastName)');"

if !database.executeStatements(query) {

print("Failed to insert initial data into the database.")

print(database.lastError(), database.lastErrorMessage())

}else {
print("Successfully inserted")
}

}

database.close()

}

//Get Single database

func loadSampleData(tableName : String) -> SampleData! {

var sampleModel : SampleData!

if openDatabase() {

let query = "select * from \(tableName)"

do {

print(database)

let results = try database.executeQuery(query, values: nil)

while results.next() {

sampleModel = SampleData.init(id: Int(results.int(forColumn: field_ID)), FirstName: results.string(forColumn: field_Firstname), LastName: results.string(forColumn: field_LastName))
}

}

catch {

print(error.localizedDescription)

}

database.close()

}

return sampleModel

}

//Get All database

func GetAllData(tableName : String) -> [SampleData]! {

var sampleModel : [SampleData]!

if openDatabase() {

let query = "select * from \(tableName)"

do {

print(database)

let results = try database.executeQuery(query, values: nil)

while results.next() {

let sample = SampleData.init(id: Int(results.int(forColumn: field_ID)),
FirstName: results.string(forColumn: field_Firstname),
LastName: results.string(forColumn: field_LastName))

if sampleModel == nil {

sampleModel = [SampleData]()

}

sampleModel.append(sample)

}

}

catch {

print(error.localizedDescription)

}

database.close()

}

return sampleModel

}

}

//How TO USE

//Create Table
DBManagerrr.shared.createDatabase(tableName: “mySample”)

//Inset Data in to table
DBManagerrr.shared.insertSampleData(tableName: “mySample”, firstName: “Test1”, LastName: “Sample1”)

//Get Single DataFrom table
let data = DBManagerrr.shared.loadSampleData(tableName: “mySample”)
print(data!)

//Get All Data from table
let datas = DBManagerrr.shared.GetAllData(tableName: “mySample”)
print(datas!)

 

 

 

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.