我正在用 MySQL 制作一个安卓登录应用程序。我用两个扩展 AsyncTasc 的私有(private)类创建了一个 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"
关于java - 安卓应用 | MySQL 日志记录不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314385/
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request