Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序| MySQL日志记录不工作_Java_Android_Mysql - Fatal编程技术网

Java Android应用程序| MySQL日志记录不工作

Java Android应用程序| MySQL日志记录不工作,java,android,mysql,Java,Android,Mysql,我正在用MySQL制作一个android登录应用程序。我创建了一个DatabaseHandler类,其中包含两个扩展AsyncTasc的私有类 守则: package me.martinwiesner.cpad; import android.os.AsyncTask; import android.support.annotation.Nullable; import android.util.Log; import java.sql.*; import java.util.ArrayLi

我正在用MySQL制作一个android登录应用程序。我创建了一个DatabaseHandler类,其中包含两个扩展AsyncTasc的私有类

守则:

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 "";
        }
    }
}
package me.martinwiesner.cpad;
导入android.os.AsyncTask;
导入android.support.annotation.Nullable;
导入android.util.Log;
导入java.sql.*;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.concurrent.ExecutionException;
公共类UserDatabaseHandler{
私有静态最终字符串JDBC_DRIVER=“com.mysql.JDBC.DRIVER”;
私有静态最终字符串DB_URL=“sql7.freemysqlhosting.net”;
私有静态最终字符串USER=“**********”;
私有静态最终字符串传递=“**********”;
私有静态获取;
私有静态集;
公共静态void onCreate(){
get=新get();
集合=新集合();
}
静态列表getAllUsers(){
返回get.doInBackground(新字符串[]{”“});
}
@可空
静态用户getUser(字符串电子邮件){
for(用户:getAllUsers()){
if(user.getEmail().equals(email))
返回用户;
}
返回null;
}
@可空
静态用户getUser(int-id){
for(用户:getAllUsers()){
if(user.getId()==id)
返回用户;
}
返回null;
}
静态无效设置用户(列出用户){
set.doInBackground(用户);
}
静态void addUser(用户){
列表用户=getAllUsers();
用户。添加(用户);
设置用户(用户);
}
静态用户addUser(字符串名称、字符串电子邮件、字符串密码、布尔值isAdmin){
Log.e(“UDH”,“添加用户”);
int id=0;
for(用户:getAllUsers()){
if(user.getId()!=id){
打破
}否则{
id++;
}
}
用户=新用户(id、名称、电子邮件、密码、isAdmin);
addUser(用户);
返回用户;
}
私有静态类Get扩展异步任务{
@凌驾
受保护列表doInBackground(字符串…字符串){
Log.e(“UDH”,“进入后台”);
连接=空;
Statement=null;
List alluser=new ArrayList();
试一试{
Log.e(“UDH”,“进入后台-尝试”);
类forName(JDBC_驱动程序);
connection=DriverManager.getConnection(DB_URL,USER,PASS);
statement=connection.createStatement();
String sql=“选择*来自用户”;
ResultSet rs=语句.executeQuery(sql);
while(rs.next()){
int id=rs.getInt(“id”);
字符串名称=rs.getString(“名称”);
String email=rs.getString(“电子邮件”);
字符串密码=rs.getString(“密码”);
布尔值isAdmin=rs.getBoolean(“isAdmin”);
Log.e(“获取”,id+);
Log.e(“获取”,名称);
Log.e(“获取”,电子邮件);
Log.e(“获取”,密码);
Log.e(“get”,isAdmin+);
用户=新用户(id、名称、电子邮件、密码、isAdmin);
添加(用户);
}
rs.close();
语句。close();
connection.close();
}捕获(SQLSE异常){
se.printStackTrace();
}捕获(例外e){
e、 printStackTrace();
}最后{
试一试{
if(语句!=null)
语句。close();
}捕获(SQLException se2){
}
试一试{
if(连接!=null)
connection.close();
}捕获(SQLSE异常){
se.printStackTrace();
}
}
回归诱惑;
}
}
私有静态类集扩展异步任务{
@凌驾
受保护字符串doInBackground(列表…用户){
Log.e(“UDH”,“背景设置”);
连接=空;
Statement=null;
for(用户:用户[0]){
试一试{
connection=DriverManager.getConnection(DB_URL,USER,PASS);
statement=connection.createStatement();
String query=“插入`users`(`ID`、`NAME`、`EMAIL`、`PASSWORD`、`ISADMIN`)值(”
+user.getId()+”、“+user.getName()+”、“+user.getEmail()+”、“+user.getPassword()
+“,“+user.isAdmin()+”;
ResultSet rs=语句.executeQuery(查询);
rs.close();
connection.close();
语句。close();
}捕获(SQLE异常){
e、 printStackTrace();
}最后{
试一试{
if(语句!=null)
语句。close();
}捕获(SQLException se2){
}
试一试{
if(连接!=null)
connection.close();
}捕获(SQLSE异常){
se.printStackTrace();
}
}
}
返回“”;
}
}
}
为了找出它不起作用的原因,我添加了以
Log.e
开头的行。 每次我写
Log.e
,它都会记录,但它不起作用

问题


如何修复此问题?

URL错误,应该是:“jdbc:mysql://server:port/database“

请告诉我们什么不起作用。你试过迈步吗