Sling Academy
Home/Kotlin/Setting Up SQLite in a Kotlin Project

Setting Up SQLite in a Kotlin Project

Last updated: November 30, 2024

SQLite is a powerful lightweight database engine that's great for small to medium applications or when you need to use a database without the need for a full database server. In this article, we will guide you on how to set up SQLite in a Kotlin project, with detailed steps and code examples.

1. Setting Up Your Kotlin Project

First, ensure you have your Kotlin project ready in your preferred IDE, such as IntelliJ IDEA or Android Studio. If not, create a new Kotlin project and set it up following these steps:

kotlin
// Open IntelliJ IDEA or Android Studio
// Click on 'New Project' and choose Kotlin as the language
// Follow the prompts to set up your project structure

2. Adding SQLite Dependence

In order to use SQLite within your Kotlin project, you'll need to include the SQLite library in your build.gradle.kts file. Add the following line to your dependencies section:

kotlin
// In your build.gradle.kts
implementation("org.xerial:sqlite-jdbc:3.36.0")

Make sure to sync your project with the new dependencies after adding them.

3. Create and Connect to an SQLite Database

Now let’s create and connect to a SQLite database using Kotlin. Below is a simple example demonstrating this:

kotlin
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.Statement

fun main() {
    val url = "jdbc:sqlite:test.db"

    // Establish connection
    val connection: Connection = DriverManager.getConnection(url)
    connection.use { conn ->
        println("Connection to SQLite has been established.")
    }
}

This script establishes a new connection to an SQLite database named test.db. If the database doesn't exist, SQLite will create a new file with this name.

4. Creating a Table and Inserting Data

Once connected, you can create tables and insert records. Here's how you can achieve that with Kotlin:

kotlin
fun createTableAndInsertData(connection: Connection) {
    val statement: Statement = connection.createStatement()
    
    // Create a new table
    statement.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT NOT NULL,
            email TEXT NOT NULL
        );
    """)

    // Insert a new row
    statement.execute("""
        INSERT INTO users (name, email)
        VALUES ('John Doe', '[email protected]');
    """)

    println("Table created and data inserted successfully.")
}

5. Querying the SQLite Database

Retrieving data from the database is simple. Use the following Kotlin code snippet to select data from the database:

kotlin
fun queryUsers(connection: Connection) {
    val statement: Statement = connection.createStatement()
    val resultSet: ResultSet = statement.executeQuery("SELECT * FROM users")

    // Iterate over the result set
    while (resultSet.next()) {
        println("User: ")
        println("ID: " + resultSet.getInt("id"))
        println("Name: " + resultSet.getString("name"))
        println("Email: " + resultSet.getString("email"))
    }
}

This code will print out all the users in the users table. You can modify the SQL query as needed to fit your specific requirements.

Conclusion

Setting up SQLite within a Kotlin project is straightforward and provides a lightweight, embedded database option for your applications. With the above steps, you should be able to create, connect, and manage an SQLite database using Kotlin efficiently.

Next Article: Creating SQLite Tables Programmatically in Kotlin

Series: Kotlin - Interacting with Databases

Kotlin

You May Also Like

  • How to Use Modulo for Cyclic Arithmetic in Kotlin
  • Kotlin: Infinite Loop Detected in Code
  • Fixing Kotlin Error: Index Out of Bounds in List Access
  • Setting Up JDBC in a Kotlin Application
  • Creating a File Explorer App with Kotlin
  • How to Work with APIs in Kotlin
  • What is the `when` Expression in Kotlin?
  • Writing a Script to Rename Multiple Files Programmatically in Kotlin
  • Using Safe Calls (`?.`) to Avoid NullPointerExceptions in Kotlin
  • Chaining Safe Calls for Complex Operations in Kotlin
  • Using the Elvis Operator for Default Values in Kotlin
  • Combining Safe Calls and the Elvis Operator in Kotlin
  • When to Avoid the Null Assertion Operator (`!!`) in Kotlin
  • How to Check for Null Values with `if` Statements in Kotlin
  • Using `let` with Nullable Variables for Scoped Operations in Kotlin
  • Kotlin: How to Handle Nulls in Function Parameters
  • Returning Nullable Values from Functions in Kotlin
  • Safely Accessing Properties of Nullable Objects in Kotlin
  • How to Use `is` for Nullable Type Checking in Kotlin