Android 学习笔记 SQLite

1 创建数据库 自己写一个类去继承SQLitemOpenHelper 这个抽象类

public class MyDatabaseHelper extends SQLiteOpenHelper

2 重写这个类的  OnCreate() 和 onUpgrade()方法 同时提供构造方法

 public MyDatabaseHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version){
   super(context,name,factory,version);
        mContext=context;
    //第二个参数为数据库名 第三个参数一般穿入的为null 第三个参数为数据库的版本号
    

    }
    @Override
    public void onCreate(SQLiteDatabase db) {
       db.execSQL(CREATE_USER);
        //这里的CREATE_USER 为一个建表的字符串sql 语句
        //Toast.makeText(mContext,"建表成功",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        
    }

3 给我们写好的类MyDatabaseHelper 去创建一个对象  利用这个对象来进行对数据库的操作 

MyDatabaseHelper dbHelper =new MyDatabaseHelper(this ,"user.db",null,1)

4  调用MyDatabaseHelper的getWritableDatabase()方法 

dbHelper.getWritableDatabase();//这里会调用MyDatabaseHelper的OnCreate的方法 //如果有数据库存在了就不会调用了反之如果不存在数据库user.db就会建立一个同时建立一张user表 这个方法会返回一个对象 SQLiteDatabase ,利用这个对象进行增删改查的操作

5 插入操作

 SQLiteDatabase db=dbHelper.getWritableDatabase();
 ContentValues values=new ContentValues();//这里创建了一个ContentValues 对象利用这个对象的put ()方法向这个对象添加数据
                    
values.put("username",un);//这里"username"对应的是表中的属性名称,un是对应这个属性的数据名称.也可以直接写                                            
 values.put("password",pw);
  values.put("Phone_number",pn);
 db.insert("user",null,values);//这里进行插入到SQliteDatabase 这个对象中去
  values.clear();

SQL进行操作

db.execSQL(insert into user (username,password,Phone_number) value(?,?,?)", new String []{"123","123","31312"} );

6 更新数据操作

SQLiteDatabase db=dbHelper.getWritableDatabase()

ContentValues values=new ContentValues(); 

values.put("password","1231");

db.update("user",values,"username=?",new String []{"1231"})

这里用SQLiteDatabase 的update方法进行操作, 第一个参数是表名 第二个是要改的数据   第三个参数是当username = 第四个字符串数组中的值的时候进行修改 ,这里相当于 SQL中的where 

SQL进行操作

db.execSQL("update user set password=? where username=?", new String []{"1231","1231"} );

7删除操作

SQLiteDatabase db=dbHelper.getWritableDatabase()

db.delete("user","username=?",new String []{"1231"})

这里这里用SQLiteDatabase 的update方法进行操作 第一个参数依旧是表名, 第二个参数是当 当username = 第四个字符串数组中的值的时候进行删除 ,就是说删除 username==1231的 这条数据

SQL进行操作

db.execSQL("delete from user where username=? ", new String []{"1231"} );

8 查询操作

这里利用SQL进行操作比较简单 好理解 

query()的方法比较复杂 ,这里不展开说明介绍,

SQLiteDatabase db=dbHelper.getWritableDatabase();
//获得满足查询条件的集合
Cursor cursor=db.rawQuery("select * from user where username=? and password=?",new String []{"123","123"});

这里 查询满足条件的集合 ,返回一个集合 ,这里的集合无论是否 有没有找到满足的条件都不为空, 所以 用

if(curesor!= null) 无效 

这里我因为表中存在唯一的一条数据,这样就放到了这个集合中 

要用  if(cursor.moveToFirst())进行判断是否查到了这条数据

猜你喜欢

转载自blog.csdn.net/qq_41859891/article/details/81837304