为什么我的Kotlin MySQL应用程序没有找到合适的驱动程序错误?

问题描述

我正在尝试在基本的Kotlin应用程序中使用mysql数据,并且使用Android Studio。我已经检索了数据并将其打印到仅运行“ Test.kt”文件的控制台中。但是我想在textView和其他东西中使用它。

test.kt

当我想运行整个应用程序时,我遇到“找不到合适的驱动程序”错误。

MainActivity.kt

这是我的代码:

MainActivity.kt

package com.example.dbtest

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    var list = ArrayList<DataModel>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener {

            list = DBCon.connection()

            for (i in 0 until list.size){
                if (i == list.size){
                    textView.text = list[list.size].firstName + list[list.size].lastName
                }
            }
        }
    }
}

DBCon.kt

package com.example.dbtest

import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException

object DBCon {

    @JvmStatic
    fun connection(): ArrayList<DataModel> {

        var list = ArrayList<DataModel>()

        try {
            val connection = DriverManager.getConnection(
                "jdbc:mysql://127.0.0.1:3306/testdb","root",""
            )

            val statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE)
            val result = statement.executeQuery("SELECT `id`,`firstName`,`lastName` FROM `testtable`")

            while (result.next()){

                list.add(DataModel(result.getInt("id"),result.getString("firstName"),result.getString("lastName")))

            }

        } catch (e: SQLException) {
            e.printStackTrace()
        }

        return list
    }
}

Test.kt

package com.example.dbtest

fun main(){

    var list = ArrayList<DataModel>()
    list = DBCon.connection()

    for (i in 0 until list.size){
        println(list[i].id.toString() + "- " + list[i].firstName + " " + list[i].lastName)
    }

}

DataModel.kt

package com.example.dbtest

data class DataModel(val id: Int,val firstName: String,val lastName: String)

我是Kotlin的新手,我学到了很多新知识来弄清楚这一点,但我做不到。请引导我解决这个问题。预先感谢。

P.S。为了解决这个问题,我根据搜索做了一些事情:

  • 添加了jar文件-> mysql-connector-java-8.0.21并用作库//已完成
  • 试图添加-> Class.forName(“ com.mysql.jdbc.Driver”)//无效
  • 试图添加-> Class.forName(“ com.mysql.cj.jdbc.Driver”)//无效
  • 添加了权限->“ android.permission.INTERNET” //无效
  • 甚至尝试使用-> AsyncTask // //无效

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)