使用SQLite本地資料庫實現註冊登陸功能
阿新 • • 發佈:2018-12-27
共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);
}
});
}
}