【问题标题】:Android Studio MainActivity Class cannot connect to local Mysql WorkbenchAndroid Studio MainActivity 类无法连接到本地 Mysql Workbench
【发布时间】:2020-01-28 15:43:02
【问题描述】:
package com.example.test

import android.os.Bundlemportandroid.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.content_main.*
import java.sql.DriverManager
import com.mysql.jdbc.Driver
import java.sql.PreparedStatement
import java.sql.Connection


class MainActivity: AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle ? ) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btnDB.setOnClickListener {
            DBConn.DBString()
        }
        setSupportActionBar(toolbar)
        fab.setOnClickListener {
            view - >
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                .setAction("Action", null)
                .show()
        }
    }
    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        return when(item.itemId) {
            R.id.action_settings - > true
            else - > super.onOptionsItemSelected(item)
        }
    }
    fun DBCon() {
        try {
            val url = "jdbc:mysql://localhost:3306/Boxing"
            var conn: Connection = DriverManager.getConnection(url, "root", "Guru9")
            //conn.close();
            if (conn != null) {
                println("Connected successfully to Database")
            }
        } catch (e: Exception) {
            println(" Not connected to Database")
        }
    }
}

【问题讨论】:

  • Workbench 是一个程序,你不能连接到它,但是连接到一个 mysql 服务器

标签: java android mysql kotlin


【解决方案1】:

您是在模拟器还是在真实设备中运行此应用?

检查这一行:

val url = "jdbc:mysql://localhost:3306/Boxing"

我猜你的 MySQL 服务器正在你正在开发的同一台机器上运行,当应用程序在模拟器中运行时,你将拥有一个像 10.0.X.X 这样的 IP,所以你看不到这个本地主机,什么时候在真实设备 IP 中运行可能是 192.168.X.X 之类的东西,尝试将 localhost 替换为 IP(不是 127.0.0.1)尝试使用开发机器的 IP

【讨论】:

  • 这是现在的异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有从服务器收到任何数据包。
  • 在这种情况下,我建议您查看以下答案:stackoverflow.com/questions/2983248/…
猜你喜欢
  • 2015-12-01
  • 2021-12-04
  • 2013-12-24
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
相关资源
最近更新 更多