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 @Override14 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 @Override19 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文件
同时测试类的操作如下: