Android应用| MySQL日志无法正常工作

马丁·W

我正在用MySQL开发一个Android登录应用程序。我用两个扩展AsyncTasc的私有类制作了一个DatabaseHandler类。

代码:

package me.martinwiesner.cpad;

import android.os.AsyncTask;
import android.support.annotation.Nullable;
import android.util.Log;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;

public class UserDatabaseHandler {
    private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    private static final String DB_URL = "sql7.freemysqlhosting.net";

    private static final String USER = "**********";
    private static final String PASS = "**********";

    private static Get get;
    private static Set set;

    public static void onCreate() {
        get = new Get();
        set = new Set();
    }

    static List<User> getAllUsers() {
        return get.doInBackground(new String[]{""});
    }

    @Nullable
    static User getUser(String email) {
        for (User user : getAllUsers()) {
            if (user.getEmail().equals(email))
                return user;
        }
        return null;
    }

    @Nullable
    static User getUser(int id) {
        for (User user : getAllUsers()) {
            if (user.getId() == id)
                return user;
        }
        return null;
    }

    static void setAllUsers(List<User> users) {
        set.doInBackground(users);
    }

    static void addUser(User user) {
        List<User> users = getAllUsers();
        users.add(user);
        setAllUsers(users);
    }

    static User addUser(String name, String email, String password, boolean isAdmin) {
        Log.e("UDH", "Adding User");
        int id = 0;
        for (User user : getAllUsers()) {
            if (user.getId() != id) {
                break;
            } else {
                id++;
            }
        }
        User user = new User(id, name, email, password, isAdmin);
        addUser(user);
        return user;
    }

    private static class Get extends AsyncTask<String, Void, List<User>> {

        @Override
        protected List<User> doInBackground(String... strings) {
            Log.e("UDH", "Getting in Background");
            Connection connection = null;
            Statement statement = null;
            List<User> allUsers = new ArrayList<>();
            try {
                Log.e("UDH", "Getting in Background - Trying");
                Class.forName(JDBC_DRIVER);

                connection = DriverManager.getConnection(DB_URL, USER, PASS);

                statement = connection.createStatement();
                String sql = "SELECT * FROM users";
                ResultSet rs = statement.executeQuery(sql);

                while (rs.next()) {
                    int id = rs.getInt("ID");
                    String name = rs.getString("NAME");
                    String email = rs.getString("EMAIL");
                    String password = rs.getString("PASSWORD");
                    boolean isAdmin = rs.getBoolean("ISADMIN");

                    Log.e("Getting", id + "");
                    Log.e("Getting", name);
                    Log.e("Getting", email);
                    Log.e("Getting", password);
                    Log.e("Getting", isAdmin + "");

                    User user = new User(id, name, email, password, isAdmin);
                    allUsers.add(user);
                }
                rs.close();
                statement.close();
                connection.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (statement != null)
                        statement.close();
                } catch (SQLException se2) {
                }
                try {
                    if (connection != null)
                        connection.close();
                } catch (SQLException se) {
                    se.printStackTrace();
                }
            }
            return allUsers;
        }
    }

    private static class Set extends AsyncTask<List<User>, Void, String> {

        @Override
        protected String doInBackground(List<User>... users) {
            Log.e("UDH", "Setting in Background");
            Connection connection = null;
            Statement statement = null;

            for (User user : users[0]) {
                try {
                    connection = DriverManager.getConnection(DB_URL, USER, PASS);
                    statement = connection.createStatement();

                    String query = "INSERT INTO `users`(`ID`, `NAME`, `EMAIL`, `PASSWORD`, `ISADMIN`) VALUES ("
                            + user.getId() + "," + user.getName() + "," + user.getEmail() + "," + user.getPassword()
                            + "," + user.isAdmin() + ")";

                    ResultSet rs = statement.executeQuery(query);

                    rs.close();
                    connection.close();
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        if (statement != null)
                            statement.close();
                    } catch (SQLException se2) {
                    }
                    try {
                        if (connection != null)
                            connection.close();
                    } catch (SQLException se) {
                        se.printStackTrace();
                    }
                }
            }
            return "";
        }
    }
}

为了弄清为什么它不起作用,我添加了以开头的行Log.e每次我写时都会记录下来Log.e,但是不起作用。

问题

我怎样才能解决这个问题?

戴维·威廉姆斯

URL错误,应为:“ jdbc:mysql:// server:port / database”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

简单的Android应用无法正常工作

来自分类Dev

用于ping的Android应用无法正常工作

来自分类Dev

从android studio运行应用程序无法正常工作

来自分类Dev

Facebook登录无法在我的Android应用中正常工作

来自分类Dev

Kotlin android应用程序ExampleInstrumentedTest无法正常工作

来自分类Dev

GoogleAnalytics Android示例应用程序无法正常工作

来自分类Dev

在Android应用程序的GridView中,clickListener无法正常工作

来自分类Dev

非常简单的onClick Android应用无法正常工作

来自分类Dev

没有wifi连接,Android应用无法正常工作

来自分类Dev

Android SQLite插入表无法正常工作,因为日志显示“(1)没有列:”错误

来自分类Dev

由于权限,MySQL日志无法正常工作

来自分类Dev

Android AccelerateDecelerateInterpolator无法正常工作

来自分类Dev

Android ScrollView无法正常工作

来自分类Dev

Android HttpResponseCache无法正常工作

来自分类Dev

Android mkdirs()无法正常工作

来自分类Dev

Android on Onclick无法正常工作

来自分类Dev

Android Listview无法正常工作?

来自分类Dev

Android weightsum无法正常工作

来自分类Dev

Android GeomagneticField无法正常工作

来自分类Dev

setTitle无法正常工作的Android

来自分类Dev

Android onConfigurationChanged无法正常工作

来自分类Dev

Android意向无法正常工作

来自分类Dev

Android TimePicker无法正常工作

来自分类Dev

httpPost无法正常工作的android

来自分类Dev

Android版式无法正常工作

来自分类Dev

android图形无法正常工作

来自分类Dev

Android setOnEditorActionListener无法正常工作

来自分类Dev

“ android:maxSdkVersion”无法正常工作

来自分类Dev

setTitle无法正常工作的Android

Related 相关文章

热门标签

归档