SQLite数据库存储

1.创建数据库

         Android为我们提供了SQLiteOpenHelper的一个抽象类。实现对数据库的创建和升级。因为是一个抽象类所以就需要我们创建一个帮助类去继承它。SQLiteOpenHelper有两个抽象方法:onCreate 和 onUpgrade。我们必须重载这两个方法。
         我们得到一个SQLiteDatabase需要使用SQLiteOpenHelper中的两个方法:
{ g e t R e a d a b l e D a t a b a s e ( ) : 当 磁 盘 满 了 , 返 回 的 对 象 以 只 读 的 方 式 打 开 数 据 库 g e t W r i t a b l e D a t a b a s e ( ) : 当 磁 盘 满 了 , 会 报 错 . 。 。 。 。 。 。 。 。 。 。 。 。 。 \left\{ \begin{aligned} getReadableDatabase() :当磁盘满了,返回的对象以只读的方式打开数据库\\ getWritableDatabase():当磁盘满了,会报错.。。。。。。。。。。。。。\\ \end{aligned} \right. {getReadableDatabase():getWritableDatabase():.
         现在我新建一个类DBHelper继承SQLiteOpenHelper:

public class DBHelper extends SQLiteOpenHelper {
    //使用者登录信息
    private static final String T_UserInfo =
            "create table T_UserInfo("
                    + "id varchar,"//id
                    + "account varchar,"//手动输入的账号
                    + "name varchar,"//账号姓名
                    + "pwd varchar)";//pwd
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(T_UserInfo);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    	db.execSQL("drop table if exists T_UserInfo");
    	onCreate(db);
    }

}

构造函数里的参数解释:

  • 第一个参数 Context
  • 第二个参数 数据库名
  • 第三个参数 一般传入null
  • 第四个参数 数据库的版本号。当版本号不同的时候,会调用onUpgrade()方法更新数据库

DBHelper创建完成 ,现在在Activity里面进行数据库的创建:

当点击按钮时进行数据库的创建

public class MainActivity extends AppCompatActivity{
	DBHelper dbhelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbhelper = new DBHelper(context,"text.db",null,1);
        button.setOnClickListener(new View.OnClickListener(){
			@Overide
			public void onClick(View v){
				SQLiteDatabase db = dbhelper.getWritableDatabase();//数据库创建完毕,以后对数据库的操作就可以通过db这个对象进行操作
			}
		});
    }
}

2.添加数据

使用的是SQLiteDatabase中的insert()方法
insert有三个参数,第一个:数据库名。第二个:一般都写null。第三个:ContentValues对象用来放值。
示例:

public class MainActivity extends AppCompatActivity{
	DBHelper dbhelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbhelper = new DBHelper(context,"text.db",null,1);
        button.setOnClickListener(new View.OnClickListener(){
			@Overide
			public void onClick(View v){
				SQLiteDatabase db = dbhelper.getWritableDatabase();//数据库创建完毕,以后对数据库的操作就可以通过db这个对象进行操作
				ContentValues values = new ContentValues();
				values.put("id","1");
				values.put("account","1821864");
				values.put("name","张三");
				values.put("pwd","123");
				db.insert("T_UserInfo",null,values);
				values.clear();
				values.put("id","2");
				values.put("account","75244");
				values.put("name","张无");
				values.put("pwd","1333");
				db.insert("T_UserInfo",null,values);
			}
		});
    }
}

3.更新数据

使用的是SQLiteDatabase中的update()方法
update有四个参数,第一个:数据库名。第二个:ContentValues对象用来放值。第三个和第四个用来约束更新某一行或者某几行中的数据。
示例:

public class MainActivity extends AppCompatActivity{
	DBHelper dbhelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbhelper = new DBHelper(context,"text.db",null,1);
        button.setOnClickListener(new View.OnClickListener(){
			@Overide
			public void onClick(View v){
				SQLiteDatabase db = dbhelper.getWritableDatabase();//数据库创建完毕,以后对数据库的操作就可以通过db这个对象进行操作
				ContentValues values = new ContentValues();
				values.put("name","张四");
				db.update("T_UserInfo",values,"id = ?",new String[]{"1"});	
			}
		});
    }
}

4.删除数据

使用的是SQLiteDatabase中的delete()方法
delete有三个参数,第一个:数据库名。第二 和 第三个用来约束删除某一行或者某几行中的数据。
示例:

public class MainActivity extends AppCompatActivity{
	DBHelper dbhelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbhelper = new DBHelper(context,"text.db",null,1);
        button.setOnClickListener(new View.OnClickListener(){
			@Overide
			public void onClick(View v){
				SQLiteDatabase db = dbhelper.getWritableDatabase();//数据库创建完毕,以后对数据库的操作就可以通过db这个对象进行操作
				db.delete("T_UserInfo","id = ?",new String[]{"1"});
			}
		});
    }
}

5.查询数据

使用的是SQLiteDatabase中的delete()方法
delete有三个参数,第一个:数据库名。第二个:指定去查询哪几列。第三个和第四个用于约束查询某一行或某几行的数据,第五个:指定需要去group by 的列。第六个指定对数据的排序。

public class MainActivity extends AppCompatActivity{
	DBHelper dbhelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbhelper = new DBHelper(context,"text.db",null,1);
        button.setOnClickListener(new View.OnClickListener(){
			@Overide
			public void onClick(View v){
				SQLiteDatabase db = dbhelper.getWritableDatabase();//数据库创建完毕,以后对数据库的操作就可以通过db这个对象进行操作
				Cursor cursor = db.query("T_UserInfo",null,null,null,null,null,null);
				if(cursor.moveToFirst()){
					do{
						String id = cursor.getString(cursor.getColumnIndex("id"));
					}while(cursor.moveToNext());
				}
				cursor.close();
			}
		});
    }
}

还有一种写法

添加数据:
db.execSQL(“insert into book(name,author,pages,price) values(?,?,?,?)”,new String[]{“yu”,“yu”,“454”,“16.63”});
更新数据:
db.execSQL(“update book set price =? where name = ?”,new String[]{“10.90”,“yu”});
删除数据:
db.execSQL(“delete from book where pages > ?”,new String[]{“500”});
查询数据:
db.rawQuery(“select * form book”,null);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值