0
votes

Comment configurer SQLite à Kotlin?

J'écris actuellement une application de discussion à Kotlin et je souhaite mettre en œuvre l'authentification, en stockant des mots de passe hachés sur mon serveur dans une base de données.

Je n'ai aucune expérience avec des bases de données, j'ai donc choisi le plus simple que j'ai trouvé celui que j'ai trouvé après environ 30 minutes de recherche de Google. Sqlite.

Malheureusement, il n'y a pas de guide de configuration réel pour SQLite à Kotlin.

Quelqu'un pourrait-il s'il vous plaît écrir un petit guide étape par étape sur la façon de:

  • Installez SQLite
  • Connectez-vous
  • Utilisez-le dans le code source (par exemple Créer une table avec une ou deux valeurs)
  • tout à Kotlin si possible

    Je suis reconnaissant pour toute aide!


3 commentaires

Parlez-vous de ... une application de bureau, un serveur (?? Pourquoi utiliser SQLite dans un serveur ??) ou un client mobile?


Je parle d'un serveur.


Ensuite, vous pouvez utiliser quelque chose de plus raisonnable comme MySQL ou PostgreSQL. Ensuite, si vous souhaitez utiliser le serveur pur-kotlin (et pas de démarrage de printemps par exemple), vous pouvez vous référer à ryanharison.co.uk/2018/04/14/kotlin-ktor-exposed-starter.ht ml espérons que (KTOR est un serveur de kotlin et exposé est un orm pour Kotlin sur SQL DBS). Vous pouvez également consulter KOTLINCONF 2018 pour certaines vidéos et entretiens associés à la liste.


4 Réponses :


0
votes

Dès que vous mentionnez Server , vous cherchez peut-être dans la mauvaise direction. SQLite est conçu comme une base de données intégrée, chaque périphérique ayant sa base de données unique. La synchronisation entre serveur et clients devra être écrite et peut être problématique, tandis que de nombreux ODBM sont ceux qui facilitent mieux les solutions client-serveur.

regarder Utilisations appropriées pour SQLite .


0 commentaires

0
votes

SQLite ne fonctionne pas avec un modèle client-serveur. Les données sont stockées dans le fichier de votre choix. Il n'y a donc aucune installation à faire.

Peut-être que vous pouvez regarder exposé . C'est une bibliothèque de kotlin pour la base de données SQL (SQLite incluse). Il y a une documentation ici . Il vous suffit d'ajouter «org.jetbrains.exposed OEXPOSEDEXPOSED'EXPOSED'EXPOSED'EXPOSED'EXPOSED 'OELVEND (+ La degré de la bibliothèque JDBC, pour SQLLITE Il est' Org.xerial: SQLite-JDBC ').


0 commentaires

0
votes
import com.sun.net.httpserver.HttpServer
import java.io.PrintWriter
import java.net.InetSocketAddress

import java.sql.* // Connection, DriverManager, SQLException
import java.util.Properties

/**
    https://www.tutorialkart.com/kotlin/connect-to-mysql-database-from-kotlin-using-jdbc/
    $ wget https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.27.2.1/sqlite-jdbc-3.27.2.1.jar
    $ kotlinc sqws.kt; kotlin -cp ".:./sqlite-jdbc-3.27.2.1.jar" SqwsKt
    Minimal embedded HTTP server in Kotlin using Java built in HttpServer
**/

fun main(args: Array<String>) {
    val conn = DriverManager.getConnection( "jdbc:sqlite:./sampledb.db")
    var stmt: Statement? = null
    var resultset: ResultSet? = null
    try {
        stmt = conn.createStatement()
        resultset = stmt!!.executeQuery("SELECT * FROM items;")
        if (stmt.execute("SELECT * FROM items;")) {
            resultset = stmt.resultSet
        }
    } catch (ex: SQLException) {
        // handle any errors
        ex.printStackTrace()
    }

    HttpServer.create(InetSocketAddress(8080), 0).apply {
        println("browse http://localhost:8080/hello")
        createContext("/hello") { http ->
            http.responseHeaders.add("Content-type", "text/plain")
            http.sendResponseHeaders(200, 0);
            PrintWriter(http.responseBody).use { out ->
                out.println( "ok")
                while (resultset!!.next()) {
                    out.println(resultset.getString("name"))
                }
            }
        }
        start()
    }
}
Please check the full documentation on Github.

0 commentaires

0
votes

Voici une MWE à l'aide d'API JDBC sur Ubuntu 20.04:

sudo apt install sqlite3
SQLITE_VERSION=`sqlite3 --version | cut -d ' ' -f 1` # 3.31.1 on Ubuntu 20.04

curl -s https://get.sdkman.io | bash

sdk i java  # for JDBC
sdk i maven # for JDBC interface to SQLite (see later)
sdk i kotlin 1.4.10 # later versions are currently affected by:
# https://youtrack.jetbrains.com/issue/KT-43520

cat > demo.main.kts <<EOF
#!/usr/bin/env kotlin

# uses maven to install the dependency from maven central:
# reference: https://github.com/Kotlin/KEEP/blob/master/proposals/scripting-support.md#kotlin-main-kts
@file:DependsOn("org.xerial:sqlite-jdbc:$SQLITE_VERSION")

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

# creates or connects to database.sqlite3 file in the current directory:
var connection = DriverManager.getConnection("jdbc:sqlite:database.sqlite3")

var statement = connection.createStatement()
statement.executeUpdate("drop   table if exists people")
statement.executeUpdate("create table           people (id integer, name string)")

statement.executeUpdate("insert into people values(1, 'leo')")
statement.executeUpdate("insert into people values(2, 'yui')")

var resultSet = statement.executeQuery("select * from people")
while ( resultSet.next() ) {
  println( "id = "   + resultSet.getInt("id")      )
  println( "name = " + resultSet.getString("name") )
  println()
}
connection.close()
EOF

chmod +x demo.main.kts
./demo.main.kts


0 commentaires