Android数据存储(3)SQLite简介和简单的登录与注册源代码
操作SQLite数据的基本操作步骤:(在此不考虑用SQLiteOpenHelper类)
1.获取SQLiteDatabase对象db创建数据库或连接数据库:SQLiteDatabasedb = SQLiteDatabase.openOrCreateDatabase(MainActivity.this.getFilesDir().toString()+ "/test.dbs", null);如果目录下有test.dbs数据库则是连接没有就是创建
2.用对象db的方法来执行sql语句:db.execSQL(String sql) 此方法木有返回值 所以查询不好弄。查询一般用db.rawQuery返回一个Cursor对象(相当与jdbc中的ResultSet),Cursor有如下几个方法来查询数据:
2.1 move ToFirst 将记录指针跳到第一行
2.2 moveToLast将记录指针跳到最后一行
2.3 moveNext将记录指针移到下一行
2.4moveToPosition( int ss)将记录指针跳到指定的ss行
2.5moveToPrevious将记录指针跳到上一行
将记录指针跳到指定的行之后就可以通过对象的getXXX方法来获取数据 :如 Cursor cursor = db.rawQuery("select na,pw from user where na=? and pw=?", new String []{name,pwd});
3.回收资源close
当然以SQLiteDatabase对象还可以调用许多方法来操作数据库,不过俺是觉得这几个方法基本够了
(仅此来练习SQLite的操作 一般注册的信息都样上传到服务器而不会是存储在手机数据库)
package com.android.xiong.sqlitelogin;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class RegistersActivity extends Activity {private EditText edname1;private EditText edpassword1;private Button btregister1;SQLiteDatabase db;@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();db.close();}@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.register);edname1 = (EditText) findViewById(R.id.edname1);edpassword1 = (EditText) findViewById(R.id.edpassword1);btregister1 = (Button) findViewById(R.id.btregister1);btregister1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString name = edname1.getText().toString();String password = edpassword1.getText().toString();if (!(name.equals("") && password.equals(""))) {if (addUser(name, password)) {DialogInterface.OnClickListener ss = new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stub// 跳转到登录界面Intent in = new Intent();in.setClass(RegistersActivity.this,MainActivity.class);startActivity(in);// 销毁当前activityRegistersActivity.this.onDestroy();}};new AlertDialog.Builder(RegistersActivity.this).setTitle("注册成功").setMessage("注册成功").setPositiveButton("确定", ss).show();} else {new AlertDialog.Builder(RegistersActivity.this).setTitle("注册失败").setMessage("注册失败").setPositiveButton("确定", null);}} else {new AlertDialog.Builder(RegistersActivity.this).setTitle("帐号密码不能为空").setMessage("帐号密码不能为空").setPositiveButton("确定", null);}}});}// 添加用户public Boolean addUser(String name, String password) {String str = "insert into tb_user values(?,?) ";MainActivity main = new MainActivity();db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+ "/test.dbs", null);main.db = db;try {db.execSQL(str, new String[] { name, password });return true;} catch (Exception e) {main.createDb();}return false;}}