Android学习笔记 - 数据库篇 (SQLite)

来源:互联网 发布:单机收银软件免费版 编辑:程序博客网 时间:2024/04/16 22:13

1.SQLite介绍
 官方网站:
http://www.sqlite.org/
 
2.SQLiteOpenHelper使用方法
 getReadableDatabase() //创建或打开一个只读的数据库
 getWriteableDatabase() //创建或打开一个可读写的数据库
 onCreate(SQLiteDatabase db) //创建数据库
 onOpen(SQLiteDatabase db) //打开数据库
 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) //更新数据库
 close() //关闭数据库

 

3.在SQLOpenHelper的子类中,必须有该构造函数
 public DatabaseHelper(Context context, String name, CursorFactory factory, int version)

 

[java] view plaincopy
  1. public class DatabaseHelper extends SQLiteOpenHelper {  
  2.   
  3.     // 默认版本  
  4.     private static final int VERSION = 1;  
  5.   
  6.     // 默认构造函数  
  7.     public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {  
  8.         super(context, name, factory, version);  
  9.     }  
  10.   
  11.     // 构造函数(用于创建数据库)  
  12.     public DatabaseHelper(Context context, String name) {  
  13.         this(context, name, null, VERSION);  
  14.     }  
  15.   
  16.     // 构造函数(用于更新数据库)  
  17.     public DatabaseHelper(Context context, String name, int version) {  
  18.         this(context, name, null, version);  
  19.     }  
  20.   
  21.     @Override  
  22.     public void onCreate(SQLiteDatabase db) {  
  23.         System.out.println("onCreate is start...");  
  24.         db.execSQL("create table user( id int, name varchar(20) )");  
  25.     }  
  26.   
  27.     @Override  
  28.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  29.         System.out.println("onUpgrade is start...");  
  30.     }  
  31. }  

 

4.使用adb访问SQLite
 adb shell //进行linux命令行(调试环境)
 ls -l //相当于dir /w
 cd data //与cd相同
 sqlite3 dbname //进入SQL管理模式
 .schema //查看数据库中的表
 SQL语句 //可直接查询
 rm -r databases //循环删除目录


5.增、删、改、查

[java] view plaincopy
  1. public class SQLiteActivity extends Activity {  
  2.   
  3.     // 声明控件  
  4.     private Button btnCreate = null;  
  5.     private Button btnUpgrade = null;  
  6.     private Button btnInsert = null;  
  7.     private Button btnUpdate = null;  
  8.     private Button btnDelete = null;  
  9.     private Button btnSelect = null;  
  10.   
  11.     @Override  
  12.     public void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.sqlite);  
  15.   
  16.         // 寻找控件  
  17.         btnCreate = (Button) findViewById(R.id.btnCreateDb);  
  18.         btnUpgrade = (Button) findViewById(R.id.btnUpgradeDb);  
  19.         btnInsert = (Button) findViewById(R.id.btnInsertDb);  
  20.         btnUpdate = (Button) findViewById(R.id.btnUpdateDb);  
  21.         btnDelete = (Button) findViewById(R.id.btnDeleteDb);  
  22.         btnSelect = (Button) findViewById(R.id.btnSelectDb);  
  23.   
  24.         // 创建数据库  
  25.         btnCreate.setOnClickListener(new OnClickListener() {  
  26.             public void onClick(View v) {  
  27.                 System.out.println("btnCreate on start...");  
  28.                 DatabaseHelper helper = new DatabaseHelper(SQLiteActivity.this"studyDb");  
  29.                 helper.getReadableDatabase();  
  30.             }  
  31.         });  
  32.   
  33.         // 更新数据库  
  34.         btnUpgrade.setOnClickListener(new OnClickListener() {  
  35.             public void onClick(View v) {  
  36.                 System.out.println("btnUpgrade on start...");  
  37.                 DatabaseHelper helper = new DatabaseHelper(SQLiteActivity.this"studyDb"2);  
  38.                 helper.getReadableDatabase();  
  39.             }  
  40.         });  
  41.   
  42.         // 新增数据  
  43.         btnInsert.setOnClickListener(new OnClickListener() {  
  44.             public void onClick(View v) {  
  45.                 System.out.println("btnInsert on start...");  
  46.                 DatabaseHelper helper = new DatabaseHelper(SQLiteActivity.this"studyDb");  
  47.                 SQLiteDatabase db = helper.getWritableDatabase();  
  48.   
  49.                 // 参数列表  
  50.                 ContentValues params = new ContentValues();  
  51.                 params.put("id"1);  
  52.                 params.put("name""dier");  
  53.   
  54.                 // 表名、列名、参数列表  
  55.                 db.insert("user"null, params);  
  56.             }  
  57.         });  
  58.   
  59.         // 修改数据  
  60.         btnUpdate.setOnClickListener(new OnClickListener() {  
  61.             public void onClick(View v) {  
  62.                 System.out.println("btnUpdate on start...");  
  63.                 DatabaseHelper helper = new DatabaseHelper(SQLiteActivity.this"studyDb");  
  64.                 SQLiteDatabase db = helper.getWritableDatabase();  
  65.   
  66.                 // 参数列表  
  67.                 ContentValues params = new ContentValues();  
  68.                 params.put("name""stdier");  
  69.   
  70.                 // 表名、参数列表、WHERE子句、子句参数  
  71.                 db.update("user", params, "id=?"new String[] { "1" });  
  72.             }  
  73.         });  
  74.   
  75.         // 删除数据  
  76.         btnDelete.setOnClickListener(new OnClickListener() {  
  77.             public void onClick(View v) {  
  78.                 System.out.println("btnDelete on start...");  
  79.                 DatabaseHelper helper = new DatabaseHelper(SQLiteActivity.this"studyDb");  
  80.                 SQLiteDatabase db = helper.getWritableDatabase();  
  81.   
  82.                 // 表名、列名、参数列表  
  83.                 db.delete("user""id=?"new String[] { "1" });  
  84.             }  
  85.         });  
  86.   
  87.         // 修改数据  
  88.         btnSelect.setOnClickListener(new OnClickListener() {  
  89.             public void onClick(View v) {  
  90.                 System.out.println("btnSelect on start...");  
  91.                 DatabaseHelper helper = new DatabaseHelper(SQLiteActivity.this"studyDb");  
  92.                 SQLiteDatabase db = helper.getWritableDatabase();  
  93.   
  94.                 //表名、查询字段、WHERE子句、子句参数、groupBy、having、orderBy  
  95.                 Cursor cursor = db.query("user"new String[] { "id""name" }, "id=?"new String[] { "1" }, nullnullnull);  
  96.                 while (cursor.moveToNext()) {  
  97.                     System.out.println("query name -> " + cursor.getString(cursor.getColumnIndex("name")));  
  98.                 }  
  99.             }  
  100.         });  
  101.     }  
  102. }