使用 JDBC 将 android 与数据库连接

Posted

技术标签:

【中文标题】使用 JDBC 将 android 与数据库连接【英文标题】:Connecting android with a database using JDBC 【发布时间】:2015-01-23 11:26:29 【问题描述】:

我正在尝试使用免费服务器连接和应用程序,尝试使用 Web 服务但根本无法做到,所以现在我正在尝试使用 jdbc 来做到这一点:

代码:

@Override
protected void onCreate(Bundle savedInstanceState) 



    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    getActionBar().hide();

    new Con().execute();

    private class Con extends AsyncTask<Void, Void, Void> 

    // JDBC driver name and database URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://31.170.165.253/u802222393_gp";

    // Database credentials
    static final String USER = "u802222393_books";
    static final String PASS = "aboasendar";

    @Override
    protected Void doInBackground(Void... params) 
        Connection conn = null;
        Statement stmt = null;

        try 
            // STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER).newInstance();




            // STEP 3: Open a connection
            System.out.println("Connecting to database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // STEP 4: Execute a query
            System.out.println("Creating statement...");
            stmt = conn.createStatement();
            String sql= "SELECT id, first, last, age FROM test";
            ResultSet rs = stmt.executeQuery(sql);

            // STEP 5: Extract data from result set
            while (rs.next()) 
                // Retrieve by column name
                int id = rs.getInt("id");
                int age = rs.getInt("age");
                String first = rs.getString("first");
                String last = rs.getString("last");

                // Display values
                System.out.print("ID: " + id);
                System.out.print(", Age: " + age);
                System.out.print(", First: " + first);
                System.out.println(", Last: " + last);
            
            // STEP 6: Clean-up environment
            rs.close();
            stmt.close();
            conn.close();
         catch (SQLException se) 
            // Handle errors for JDBC
            se.printStackTrace();
         catch (Exception e) 
            // Handle errors for Class.forName
            e.printStackTrace();
         finally 
            // finally block used to close resources
            try 
                if (stmt != null)
                    stmt.close();
             catch (SQLException se2) 
            // nothing we can do
            catch (java.sql.SQLException e) 
                // TODO Auto-generated catch block
                e.printStackTrace();
            
            try 
                if (conn != null)
                    conn.close();
             catch (SQLException se) 
                se.printStackTrace();
            // end finally try
            catch (java.sql.SQLException e) 
                // TODO Auto-generated catch block
                e.printStackTrace();
            
        // end try
        System.out.println("Goodbye!");

        return null;
    

它总是在我搜索了很多的 URL 上给出一个例外,但没有找到关于我应该如何编写 URL 的答案

Logcat :

【问题讨论】:

您是否尝试过使用 php 将数据库中的数据导出到 json 数组中,然后使用 JSONObject 在您的设备中读取它们?? 这个项目是给大学的,他们希望我们使用 jdbc 无论您的代码放在哪里,它都无法到达目标地址。我查看了您正在使用的服务,您似乎无法从外部访问 MySQL 数据库。葡萄牙语链接:hostinger.com.br/base-de-conhecimento/5.html 当您是免费用户时,在托管程序上忘记它。也许你可以用 localhost 来做,但你必须把笔记本电脑带到大学..我在 netbeans 中创建一个应用程序时遇到了同样的问题,试图从托管服务器的免费用户那里做同样的事情....我不推荐它 所以没有免费的,非常感谢您的反馈 【参考方案1】:

您可以使用 localhost(将您的计算机用作服务器)并随时工作 对于在 android 中使用 JDBC,你会在这里找到很好的指南, http://www.vogella.com/tutorials/MySQLJava/article.html

如果你想从jdbc开始,你可以从这个教程开始http://www.tutorialspoint.com/jdbc/jdbc-introduction.htm

如果您有任何问题,请发表评论 谢谢

【讨论】:

以上是关于使用 JDBC 将 android 与数据库连接的主要内容,如果未能解决你的问题,请参考以下文章

Android 无法直接连接 Postgres 数据库,也无法使用 JDBC 连接

Android JDBC 连接器

在Android中使用JDBC MySQL连接数据库?

jdbc与odbc的区别

我们可以使用 JDBC 在 Android 中连接远程 MySQL 数据库吗? [关闭]

Android JDBC 连接问题