我想在android中创建登录页面,对于我选择java的Web服务,所以我想以json格式获取数据(我已经用java编写了代码),现在登录我想如果登录成功则存储成功否则失败。我的问题是我想将用户名和密码从 android 中的控件传递给 java 我应该怎么做我总是“失败”,因为每次调用空值的 isUser() 都会在函数内部传递,尽管我的凭据是正确的我的类import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.json.JSONString;class MyClass { Connection con = null; Statement stmt = null; ResultSet rs = null;int mobno;String passwd;private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";private static final String DATABASE_URL = "jdbc:mysql://localhost/psamajdb";private static final String USERNAME = "root";private static final String PASSWORD = "";MyClass(){ this.passwd=passwd; this.mobno=mobno; try { Class.forName(JDBC_DRIVER); con = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD); stmt=con.createStatement(); } catch (Exception e) { System.out.println("Exception e = " + e); }} public JSONArray convertToJson(ResultSet rs) throws Exception{ JSONArray jsonArray = new JSONArray(); while (rs.next()) { int total_rows = rs.getMetaData().getColumnCount(); for (int i = 0; i < total_rows; i++) { JSONObject obj = new JSONObject(); obj.put(rs.getMetaData().getColumnLabel(i + 1) .toLowerCase(), rs.getObject(i + 1)); jsonArray.put(obj); } } return jsonArray; } public String[] jsonToString(JSONArray arr){ if(arr==null) { return null; } String[] str1=new String[arr.length()]; for (int i = 0; i < str1.length; i++) { str1[i]=arr.optString(i); } return str1; }
1 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
MyClass当前的构造函数如下所示:
MyClass() {
this.passwd = passwd; // logic error
this.mobno = mobno; // logic error
... other lines omitted
}
在构造函数的上下文中,this.passwd和passwd引用相同的对象。由于它在构造函数中,因此值为空。检查您的 IDE 或编译器是否有警告。与另一行相同。
因此,您可能希望像这样将passwd和mobno作为构造函数的参数:
MyClass(String passwd, int mobno) {
this.passwd = passwd;
this.mobno = mobno;
... other lines omitted
}
正确分配值。在request将需要询问,以获取这些值使一个新的MyClass实例可以被正确地创建。询问请求取决于从应用程序发送值的方式。
添加回答
举报
0/150
提交
取消