Kotlin数据库操作入门:PostgreSQL与MongoDB

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Kotlin中数据库操作入门

Kotlin是一种现代编程语言,广泛用于服务器端应用开发、Android开发和后端服务。对于任何开发者来说,掌握数据库操作都是一项关键技能。本文将介绍如何使用Kotlin连接关系型数据库PostgreSQL和文档型数据库MongoDB。内容面向初学者:我们将讲解驱动安装、连接配置以及基本的CRUD操作(创建、读取、更新、删除)。



1. 环境准备与依赖配置

您需要一个Kotlin项目(例如使用Gradle或Maven)。我们将使用Gradle——Kotlin生态中最流行的构建工具。在build.gradle.kts文件中添加以下依赖:

dependencies {    // 用于PostgreSQL    implementation("org.jetbrains.exposed:exposed-core:0.44.1")    implementation("org.jetbrains.exposed:exposed-dao:0.44.1")    implementation("org.jetbrains.exposed:exposed-jdbc:0.44.1")    implementation("org.postgresql:postgresql:42.7.1")

// 用于MongoDB implementation("org.mongodb:mongodb-driver-kotlin-sync:4.11.1") implementation("org.mongodb:bson-kotlinx:4.11.1")}

Exposed是一个轻量级的Kotlin ORM库,可简化SQL数据库操作。对于MongoDB,我们使用官方提供的Kotlin驱动。



2. 通过Exposed操作PostgreSQL

2.1. 连接数据库

首先创建PostgreSQL连接对象。请确保您的计算机上已启动PostgreSQL服务器并创建了数据库(例如testdb)。

import org.jetbrains.exposed.sql.Databaseimport org.jetbrains.exposed.sql.transactions.transaction

fun main() { // 连接本地数据库 Database.connect( url = "jdbc:postgresql://localhost:5432/testdb", driver = "org.postgresql.Driver", user = "postgres", password = "your_password" )

println("PostgreSQL连接成功建立")}

连接成功后即可执行SQL查询。Exposed使用DSL(领域特定语言)在Kotlin中编写查询。



2.2. 创建表与CRUD操作

定义一个包含id、name和email字段的简单Users表:

import org.jetbrains.exposed.sql.*import org.jetbrains.exposed.sql.transactions.transaction

object Users : Table() { val id = integer("id").autoIncrement() val name = varchar("name", 50) val email = varchar("email", 100)

override val primaryKey = PrimaryKey(id)}

fun main() { Database.connect(...)

transaction { // 创建表 SchemaUtils.create(Users)

// INSERT(创建) Users.insert { it[name] = "伊万·彼得罗夫" it[email] = "ivan@example.com" }

// SELECT(读取) val users = Users.selectAll().map { "${it[Users.id]}: ${it[Users.name]} (${it[Users.email]})" } println("用户列表: $users")

// UPDATE(更新) Users.update({ Users.id eq 1 }) { it[name] = "伊万·西多罗夫" }

// DELETE(删除) Users.deleteWhere { Users.id eq 1 } }}

如您所见,代码非常类似于普通SQL,但完全使用纯Kotlin编写。Exposed会自动转义名称并防止SQL注入攻击。



3. 通过Kotlin驱动操作MongoDB

3.1. 连接MongoDB

MongoDB是一种NoSQL数据库,以类似JSON的文档形式存储数据。我们使用同步驱动进行连接:

import com.mongodb.kotlin.client.coroutine.MongoClientimport kot                

博客

书籍推荐