1.SQLite是一款轻量型的数据库是遵守ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统,多用于嵌入式开发中。
2.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是 SQLite存储数据时不区分类型
3.例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字 段声明为布尔型,我们也可以存入浮点数
4.除非是主键被定义为Integer,这时只能存储64位整数,SQLite,无需安装 ,是Android平台自带的一个数据库。
下面让我们看一下对SQLite的实际运用:
第一布:继承SQLiteOpenHelper创建数据库和表
1 package com.example.help; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 7 public class Helper extends SQLiteOpenHelper { 8 9 public Helper(Context context) { 10 super(context, "db.student", null, 1); 11 } 12 13 @Override 14 public void onCreate(SQLiteDatabase db) { 15 db.execSQL("create table student (_id integer primary key autoincrement,name vachar(20),sex vachar(3))"); 16 } 17 18 @Override 19 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 20 21 } 22 23 }
第二步:新建一个类实现对数据库的增删该查
1 package com.example.dao; 2 3 import com.example.help.Helper; 4 5 import android.content.Context; 6 import android.database.Cursor; 7 import android.database.sqlite.SQLiteDatabase; 8 9 public class Dao { 10 private Helper helper; 11 private String sex; 12 public Dao(Context context) { 13 helper=new Helper(context); 14 } 15 public void add(String name,String sex){ 16 SQLiteDatabase db = helper.getWritableDatabase(); 17 db.execSQL("insert into student(name,sex) values(?,?)",new Object[]{name,sex}); 18 db.close(); 19 } 20 public void delete(String name){ 21 SQLiteDatabase db = helper.getWritableDatabase(); 22 db.execSQL("delete from student where name=?",new Object[]{name}); 23 db.close(); 24 } 25 public void update(String name,String newsex){ 26 SQLiteDatabase db = helper.getWritableDatabase(); 27 db.execSQL("update student set sex=? where name=?",new Object[]{newsex,name}); 28 db.close(); 29 } 30 public String find(String name){ 31 SQLiteDatabase db=helper.getReadableDatabase(); 32 Cursor cursor = db.rawQuery("select sex from student where name=?", new String[]{name}); 33 boolean next = cursor.moveToNext(); 34 if(next){ 35 sex = cursor.getString(0); 36 } 37 db.close(); 38 cursor.close(); 39 return sex; 40 41 } 42 }
第三步:测试一下sql语句是否正确以及Java语言是否正确
package com.example.test; import com.example.dao.Dao; import android.test.AndroidTestCase; import android.text.TextUtils; public class sqlTest extends AndroidTestCase { public void add(){ Dao dao = new Dao(getContext()); dao.add("张三", "男"); } public void delete(){ Dao dao = new Dao(getContext()); dao.delete("张三"); } public void update(){ Dao dao = new Dao(getContext()); dao.update( "张三","女"); } public void find(){ Dao dao = new Dao(getContext()); String find = dao.find("张三"); if(TextUtils.isEmpty(find)){ System.out.println("没这人"); }else{ System.out.println(find); } } }
但同时需要配置AndroidManifest.xml文件
同时测试类的操作如下: