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())进行判断是否查到了这条数据