Android Studio [JDBC]:为啥我无法访问数据库
Posted
技术标签:
【中文标题】Android Studio [JDBC]:为啥我无法访问数据库【英文标题】:Android Studio [JDBC]: Why I'm not able to reach the databaseAndroid Studio [JDBC]:为什么我无法访问数据库 【发布时间】:2015-03-09 17:05:29 【问题描述】:我知道之前有一些话题讨论过这个问题,但我尝试了几乎所有的解决方案都没有运气,我知道有些人不建议使用 JDBC 来处理 android 中的 DB,但对于我的大学项目而言我需要使用它。
我有一个由 Hostgator 托管的数据库,我确信我正在使用的信息(主机名、用户和密码),因为我在其他 Java IDE 上尝试过它们并且它们运行良好,所以我的电脑没有被阻止任何一个。我将 mysql J 连接器作为库添加到 Android Studio,尝试了 2 个最新版本和 3.0.17,但没有运气,我不知道我做错了什么,因为 logcat 中没有出现错误或异常。
这是包含与 DB 的连接的代码:(P.S.I 删除了异常语句以缩短代码)
protected Void doInBackground(Void... params)
Connection start;
// 试过 localhost 还是不行
String url = "jdbc:mysql://xxx.xxx.xxx.xxx:3306/abed_impresent";
String username = "abed_bayoun";
String pass = "xxxxx";
Class.forName("com.mysql.jdbc.Driver").newInstance();
start = DriverManager.getConnection(url, username, pass);
Statement my;
if (start != null)
test = new ArrayList<>();
my = start.createStatement();
ResultSet res = my.executeQuery("select code from Tutors");
while (res.next())
test.add(res.getString("code"));
for (int c = 0; test.size() > c; c++)
if (text.getText().equals(test.get(c)))
Intent i = new Intent(tStart.this, tChoose.class);
startActivity(i);
Toast.makeText(tStart.this, "test", Toast.LENGTH_LONG).show();
break;
else continue;
return null;
if 语句下的所有代码都开始跳过,因为应用似乎无法连接到 DB。
【问题讨论】:
发布堆栈跟踪以及异常的相关详细信息。 没有错误或异常,程序工作但没有连接到数据库 但不连接数据库 如果应用程序无法连接到数据库,则会引发异常。看起来您没有记录异常,因此您无法检查如何解决问题。请记录异常,复制堆栈跟踪并编辑您的帖子,否则我们无法为您提供帮助。 我正在使用 e.printstacktrace();但我在 logcat 中找不到任何异常 你在哪个部分使用它?因为如果没有抛出异常,则意味着您可以毫无问题地连接和使用数据库。 【参考方案1】:强烈不建议在android上使用jdbc驱动程序(据我所知,只有一个jdbc版本适用于android)。而不是 jdbc 驱动程序考虑创建从您的数据库提供内容的 Web 服务。
【讨论】:
【参考方案2】:好吧,我知道我做错了什么,
我把这段代码放在单独的 try-catch 语句中
start = DriverManager.getConnection(url, username, pass);
这以某种方式阻止了其他代码获取 start 的值并将其作为空值处理。
我将其余代码包含在同一个 try-catch 语句中,这对我有用。
感谢大家的努力。
【讨论】:
以上是关于Android Studio [JDBC]:为啥我无法访问数据库的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio Oracle JDBC,结果集一直为空
Android Studio ClassNotFoundException: com.mysql.jdbc.Driver 添加模块后
如何将 Mysql JDBC 驱动程序导入到 android studio