使用SQLite本地数据库实现注册登陆功能

来源:互联网 发布:京东商城数据库设计 编辑:程序博客网 时间:2024/05/16 19:35

共3个页面:注册,确认,登陆。
注册有两种可能。1.用户名已存在,提示更改用户名(select语句) 2.注册成功(insert语句)
登陆有两种可能。(select语句)1.用户名和密码不匹配 2.登陆成功
操作步骤:

一、数据库的准备工作MyDatabaseHelper.java

public class MyDatabaseHelper extends SQLiteOpenHelper {    final String CREATE_TABLE_SQL = "create table userlist(_id integer primary key autoincrement,name,passwd,gender)";    public MyDatabaseHelper(Context context, String name, int version) {        super(context, name, null, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(CREATE_TABLE_SQL);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}

android自带的数据库SQLite有两个非常重要的类。SQLiteOpenHelper,SQLiteDatabase。
在这段代码,新建一个数据库,在数据库里新建一个表。

二、在用到数据库的每一个.java中,先写两句话

MyDatabaseHelper dbHelper = new MyDatabaseHelper(register_index.this, "userlist.db", 1);                SQLiteDatabase db = dbHelper.getReadableDatabase();

三、select语句和insert语句

select语句

 String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'"; Cursor cursor = db.rawQuery(sql, null); if (!cursor.moveToNext()){} else{}

Name和Passwd是String类型,注意这里必须写成”+Name+”

insert语句

insertData(db, Name, Passwd, Gender);private void insertData(SQLiteDatabase db, String name, String passwd, String gender) {db.execSQL("insert into userlist values(null,?,?,?)", new String[]{name, passwd, gender});    }

写一个函数insertData。

四、还有2个补充。

第1,带数据的跳转。

发送

                    Intent intent = new Intent(register_index.this, result.class);                    Bundle data = new Bundle();                    data.putString("name", Name);                    data.putString("passwd", Passwd);                    data.putString("gender", Gender);                    intent.putExtras(data);                    startActivity(intent);

分3步。1.new Bundle 2.放入数据putXXX 3.把bundle绑在intent上(putExtras)

接收

                Bundle data = getIntent().getExtras();                String Name = data.getString("name");                String Passwd = data.getString("passwd");                String Gender = data.getString("gender");

分2步。1.得到intent,然后得到intent里的bundle。2.得到bundle里的数据(getXXX)。

第2,调试经常用到Toast

Toast.makeText(register_index.this, "用户名已存在,请更改用户名!", Toast.LENGTH_SHORT).show();

附录:
register.java

public class login extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        findViews();        setListeners();    }    private EditText name;    private EditText passwd;    private Button login;    private Button register;    private void findViews() {        name = (EditText) findViewById(R.id.name);        passwd = (EditText) findViewById(R.id.passwd);        login = (Button) findViewById(R.id.login);        register = (Button) findViewById(R.id.register);    }    private void setListeners() {        login.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String Name = name.getText().toString().trim();                String Passwd = passwd.getText().toString().trim();                MyDatabaseHelper dbHelper = new MyDatabaseHelper(login.this, "userlist.db", 1);                SQLiteDatabase db = dbHelper.getReadableDatabase();                String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";                Cursor cursor = db.rawQuery(sql, null);                if (!cursor.moveToNext())                    Toast.makeText(login.this, "用户名与密码不匹配,请重新输入!", Toast.LENGTH_SHORT).show();                else                    Toast.makeText(login.this, "登陆成功!", Toast.LENGTH_SHORT).show();            }        });        register.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(login.this, register_index.class);                startActivity(intent);            }        });    }}

result.java

public class result extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_result);        findViews();        showResults();        setListeners();    }    private TextView name;    private TextView passwd;    private TextView gender;    private Button insert;    private void findViews() {        name = (TextView) findViewById(R.id.name);        passwd = (TextView) findViewById(R.id.passwd);        gender = (TextView) findViewById(R.id.gender);        insert = (Button) findViewById(R.id.insert);    }    private void showResults() {        Bundle data = getIntent().getExtras();        name.setText("您的用户名为:" + data.getString("name"));        passwd.setText("您的密码为:" + data.getString("passwd"));        gender.setText("您的性别为:" + data.getString("gender"));    }    private void setListeners() {        insert.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                MyDatabaseHelper dbHelper = new MyDatabaseHelper(result.this, "userlist.db", 1);                SQLiteDatabase db = dbHelper.getWritableDatabase();                Bundle data = getIntent().getExtras();                String Name = data.getString("name");                String Passwd = data.getString("passwd");                String Gender = data.getString("gender");                insertData(db, Name, Passwd, Gender);                Toast.makeText(result.this, "注册成功!", Toast.LENGTH_SHORT).show();                Intent intent = new Intent(result.this, login.class);                startActivity(intent);            }        });    }    private void insertData(SQLiteDatabase db, String name, String passwd, String gender) {        db.execSQL("insert into userlist values(null,?,?,?)", new String[]{name, passwd, gender});    }}

login.java

public class login extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        findViews();        setListeners();    }    private EditText name;    private EditText passwd;    private Button login;    private Button register;    private void findViews() {        name = (EditText) findViewById(R.id.name);        passwd = (EditText) findViewById(R.id.passwd);        login = (Button) findViewById(R.id.login);        register = (Button) findViewById(R.id.register);    }    private void setListeners() {        login.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String Name = name.getText().toString().trim();                String Passwd = passwd.getText().toString().trim();                MyDatabaseHelper dbHelper = new MyDatabaseHelper(login.this, "userlist.db", 1);                SQLiteDatabase db = dbHelper.getReadableDatabase();                String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";                Cursor cursor = db.rawQuery(sql, null);                if (!cursor.moveToNext())                    Toast.makeText(login.this, "用户名与密码不匹配,请重新输入!", Toast.LENGTH_SHORT).show();                else                    Toast.makeText(login.this, "登陆成功!", Toast.LENGTH_SHORT).show();            }        });        register.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(login.this, register_index.class);                startActivity(intent);            }        });    }}
0 1
原创粉丝点击