Code Bye

【求解】android利用JDBC直接调用MYSQL问题

  最近正在忙活着毕业设计,关于android上的图书管理系统。系统大概是编写一个android的手机客户端,然后利用JDBC直接连接同一局域网的mysql数据库服务器来访问数据。
  现在客户端做好了,后台数据库也运行了并且在eclipse上面测试过,利用一个JAVA测试通过JDBC访问mysql成功,但在客户端运行的时候就是死活无法连接。。。附上客户端的连接代码:

public class DBUtil 
{
    public static Connection getConnection()
{
Connection con=null;
try
{
Class.forName(“com.mysql.jdbc.Driver”);
con=DriverManager.getConnection(“jdbc:mysql://172.71.103.44:3306/test?useUnicode=true&characterEncoding=UTF-8″,”root”,”1234″);       
}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}

看看手机上是否能连上3306端口,用代码测试一下。

你的客户的是不是指手机模拟器,,如果是手机模拟器 好像需要转端口号 才能正常连局域网。

引用 1 楼 birdsaction 的回复:

看看手机上是否能连上3306端口,用代码测试一下。

你的客户的是不是指手机模拟器,,如果是手机模拟器 好像需要转端口号 才能正常连局域网。

手机模拟器没连接上,用自己的手机在局域网下也不行,昨天测试了,貌似是Class.forName(“com.mysql.jdbc.Driver”);这条没有办法执行。。。。转端口号是怎么回事啊???


40分
我知道了,你是缺少MYSQL驱动吧, 像这样在Android上面直接JDBC连MYSQL ,我感觉蛮少见的,

你可以在JAVA WEB端编写几个接口 ,然后Android HTTP方式调用这些接口 ,这样做是比较常见的。

引用 3 楼 birdsaction 的回复:

我知道了,你是缺少MYSQL驱动吧, 像这样在Android上面直接JDBC连MYSQL ,我感觉蛮少见的,

你可以在JAVA WEB端编写几个接口 ,然后Android HTTP方式调用这些接口 ,这样做是比较常见的。

JAVA WEB端编写接口我不懂,是不是要利用tomcat之类的工具呢?像我这样前端跟后台数据库都弄好的,这样做可行性怎样??

如果大神你有空的话,麻烦把步骤详细讲解下哈~~灰常感谢!

如果不懂JAVA WEB ,那就写Socket 编程来作为接口。 最好不要直接用Android连接Mysql,
把数据库操作作为接口封装起来 ,然后写一个Socket 服务端,供Android客户端调用 这个是可行的。
引用 5 楼 birdsaction 的回复:

如果不懂JAVA WEB ,那就写Socket 编程来作为接口。 最好不要直接用Android连接Mysql,
把数据库操作作为接口封装起来 ,然后写一个Socket 服务端,供Android客户端调用 这个是可行的。

好的,就按你说的这个方法来,晚上回去研究下,虽然对scoket还不了解!

对SCOKET也是不了解,scoket端怎么写如何搭建的问题啊
引用 5 楼 birdsaction 的回复:

如果不懂JAVA WEB ,那就写Socket 编程来作为接口。 最好不要直接用Android连接Mysql,
把数据库操作作为接口封装起来 ,然后写一个Socket 服务端,供Android客户端调用 这个是可行的。

原来我比较菜,那个scoket服务端在PC上要如何搭建和运行呢?

楼主后来进展如何了?我现在也是这样的情况,也是想Android直接从MySQL读取数据在客户端显示出来..但是不知道是不是非得通过Web Service(比如PHP/JSP等动态网页)才能展示..??
引用 楼主 chekter 的回复:

  最近正在忙活着毕业设计,关于android上的图书管理系统。系统大概是编写一个android的手机客户端,然后利用JDBC直接连接同一局域网的mysql数据库服务器来访问数据。
  现在客户端做好了,后台数据库也运行了并且在eclipse上面测试过,利用一个JAVA测试通过JDBC访问mysql成功,但在客户端运行的时候就是死活无法连接。。。附上客户端的连接代码:

public class DBUtil 
{
    public static Connection getConnection()
{
Connection con=null;
try
{
Class.forName(“com.mysql.jdbc.Driver”);
con=DriverManager.getConnection(“jdbc:mysql://172.71.103.44:3306/test?useUnicode=true&characterEncoding=UTF-8″,”root”,”1234″);       
}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}

我也遇到了这个问题,但是去年我曾经做过这个实验,代码都是一样的,今年就不行了,是不是数据库的版本问题。楼主解决了吗?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明【求解】android利用JDBC直接调用MYSQL问题