java - 将值保存到数据库

标签 java android database sqlite android-sqlite

我正在尝试为餐厅制作应用程序。我已经建立了一个本地数据库,并有一个准备好的语句来保存用户的用户名和密码,使他们能够登录系统,但它似乎不起作用。用户名和密码未保存。下面是我的代码,如果有人有任何解决方案,我将不胜感激。

public class register extends AppCompatActivity {

EditText username, password;
Button registartion;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
}

private Connection getConnection()
{

    String host = "jdbc:mysql://jdbc.fmc.me.uk:3306/db_ben";
    String u = "user_ben";
    String p = "******";
    try
    {
        Connection con = DriverManager.getConnection(host, u, p);
        return con;
    } catch (SQLException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

private boolean registerUser(){

    //Get username
    EditText regUsernameBox = (EditText) findViewById(R.id.RegUsername);
    String regUsernameStr = regUsernameBox.getText().toString();

    //Get password
    EditText regPasswordBox = (EditText) findViewById(R.id.RegPassword);
    String regPasswordStr = regPasswordBox.getText().toString();

    System.out.println(regUsernameStr);
    System.out.println(regPasswordStr);

    int i = 0;
    Connection con = getConnection();
    try {
        PreparedStatement pst = con.prepareStatement("insert into users values(?,?)");
        pst.setString(1, regUsernameStr);
        pst.setString(2,regPasswordStr);
        i = pst.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    if(i>0)
        return true;
    return false;
}

public void buttonClick() {
    final Button registerUsers = (Button) findViewById(R.id.bRegister);

    registerUsers.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            registerUser();
        }
    });
}
}

最佳答案

您的方法均未被调用。您的 oncreate 设置 Activity 的 View ,然后什么都不做。因此,您不会收到任何错误,因为技术上没有错误。您必须在创建中为按钮设置按钮单击说明。你的 onCreate 应该是这样的:

@Override
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_register);
     final Button registerUsers = (Button) findViewById(R.id.bRegister);

     registerUsers.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             registerUser();
         }
     });
}

现在这里为按钮分配了一个变量,然后在创建时将 clicklistener 设置为它。现在,当您单击该按钮时,它会执行某些操作。

关于java - 将值保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36236760/

相关文章:

java - 排序列表但不能直接比较两个模型

Android ListView 组

ruby-on-rails - 在 Rails 中播种数据库的最佳方法是什么?

java - 如何仅为特定标记设置 InfoWindowAdapter

android - medianBlur 在 opencv4android 中不起作用

database - Firebase [字符串 :Any] but I need it to be an Dictionary

sql-server - SQL 服务器 : multiple counts with joins

java - 如何使这段代码不返回无限循环?

java - 有没有一种简单的方法可以在 Java 中计算和格式化时间/日期间隔?

java - 使用 apache FIleutilities 读取 sql 文件时使用的编码