首页 > 技术文章 > SQLite数据库_实现简单的增删改查

boket 2017-04-21 11:06 原文

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文件

  同时测试类的操作如下:

 

 

 

  

  

推荐阅读