2016-03-06 107 views
0

我有这个问题约2天,我找不到任何解决方案。事情是我使用MySQL-Connection-Java在Android上操作MySQL。在调试时,即使Eclipse Java中的代码运行正常,它也无法与此基础连接。我一直在关注互联网上的许多论坛讨论,但似乎没有有效的解决方案,或者我可能是盲目的。下面你可以看到我正在使用的课程代码。我不知道为什么在Eclipse中与基础连接,但在Android设备上它不想。在Eclipse中的代码工作,但在Android上不起作用

错误代码:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接3次。放弃。

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.util.Properties; 

    public class JDBC { 
     // init database constants 
     private static final String DATABASE_DRIVER = "com.mysql.jdbc.Driver"; 
     private stat 

ic final String DATABASE_URL = "jdbc:mysql://sql7.freemysqlhosting.net/sql7109625?autoReconnect=true"; 
     private static final String USERNAME = "REMOVED"; 
     private static final String PASSWORD = "REMOVED"; 
     private static final String MAX_POOL = "250"; 

     // init connection object 
     private Connection connection; 
     // init properties object 
     private Properties properties; 

     // create properties 
     private Properties getProperties() { 
      if (properties == null) { 
       properties = new Properties(); 
       properties.setProperty("user", USERNAME); 
       properties.setProperty("password", PASSWORD); 
       properties.setProperty("MaxPooledStatements", MAX_POOL); 
      } 
      return properties; 
     } 

     // connect database 
     public Connection connect() { 
      if (connection == null) { 
       try { 
        Class.forName(DATABASE_DRIVER); 
        connection = DriverManager.getConnection(DATABASE_URL, getProperties()); 
       } catch (ClassNotFoundException | SQLException e) { 
        e.printStackTrace(); 
       } 
      } 
      return connection; 
     } 

     // disconnect database 
     public void disconnect() { 
      if (connection != null) { 
       try { 
        connection.close(); 
        connection = null; 
       } catch (SQLException e) { 
        e.printStackTrace(); 
       } 
      } 
     } } 
+8

如果我是你,我会改变我的MySQL密码真的快,你只是张贴公开在互联网上。 –

+0

为什么您认为您可以使用代码连接到计算机上的常规MySQL数据库以连接到Android上的SQLite数据库,而无需更改任何内容? –

+0

@Niels Masdorp 当我与常规MySql连接时,我拿这个代码的数据: [link](http://stackoverflow.com/questions/2839321/connect-java-to-a-mysql-database) ' String sql =“SELECT * FROM stackoverflow”; try {PreparedStatement statement = mysqlConnect.connect()。prepareStatement(sql); ...继续... ...继续... ...完成.... } catch(SQLException e){ e.printStackTrace(); } finally { mysqlConnect.disconnect(); }' –

回答

0

我发现我的问题。我用

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 

和我的应用程序的工作:)

相关问题