SQLite数据库---数据库的基本操作
来源:互联网 发布:淘宝外卖怎么加入配送 编辑:程序博客网 时间:2024/06/05 16:46
数据库的常用操作
1.创建SQLite数据库
Android系统推荐使用SQLiteOpenHelper的子类创建SQLite数据库,因此需要创建一个类继承自SQLiteOpenHelper,重写onCreate()方法,并在该方法中执行创建数据库的命令。具体代码如下所示:
public class DbHelper extends SQLiteOpenHelper{ private Context context;//成员变量 public static final String DB_NAME="BookStore.db"; public static final String CREATE_BOOK="create table book(id integer primary key autoincrement," + "author text,price real,pages integer,name text)";//autoincrement,用于主键自动增长 public static final String CREATE_CATEGORY="create table category(id integer primary key autoincrement,name text,code integer)"; public DbHelper(Context context, int version) { super(context,DB_NAME, null, version);//上下文,数据库名,游标工厂,默认为null,数据库版本 Log.d("DBHelper","constructor"); this.context=context; } @Override public void onCreate(SQLiteDatabase db) { Log.d("DBHelper","onCreate"); //建表 db.execSQL(CREATE_BOOK); //弹出toast表示执行完毕 db.execSQL(CREATE_CATEGORY); Toast.makeText(context,"create success",Toast.LENGTH_LONG).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//旧版本,新版本 db.execSQL("drop table if exists Book"); db.execSQL("drop table if exists category");//先把旧表删除 onCreate(db);//再建表 }}
上述代码中,创建数据库表的SQL语句被定义在onCreate()方法中,当数据库第一次被创建时会自动调用该方法,并执行方法中的SQL语句。当数据库版本号增加时会调用onUpgrade()方法,如果版本号不增加,该方法就不会被调用。需要注意的是:创建的数据库会被放置在/data/data/<your package name>/database 目录下。
2.增加一条数据
下面以book表为例子,介绍如何向表中插入一条数据。
//添加数据 public void addData(View view) { SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();//得到一个读写的 SQLiteDatabase 对象 //将参数名和列添加到ContentValues 对象里面 ContentValues contentValues=new ContentValues(); contentValues.put("name","android"); contentValues.put("author","li"); contentValues.put("pages",200); contentValues.put("price",40); //插入 sqLiteDatabase.insert("book","name",contentValues);}
3.修改一条数据
public void updateData(View view) { //获取一个读写的 SQLiteDatabase 对象 SQLiteDatabase sqLiteDatabase = dbHelper.getWritableDatabase(); //创建一个ContentValues对象 ContentValues contentValues = new ContentValues(); //将参数以key,values的形式添加进去 contentValues.put("price", 1000); //执行修改的方法 sqLiteDatabase.update("book", contentValues, "name=?", new String[]{"java"}); }
注意的是:使用完SQLitedatabase对象后一定要关闭,否则数据库连接一定存在。会不断消耗内存,并且会报出数据库连接会一直存在,会不断消耗内存,并且报出数据库未关闭的异常,当数据库内存不足时将获取不到SQLitedatabase对象。
4.删除一条数据
public void deleteData(View view){ SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase(); sqLiteDatabase.delete("book","pages<?",new String[]{"300"}); }
5.查询一条数据
查询数据首先要获得一个可读的SQLitedatabase对象。SQLitedatabase提供了两个用于查询数据的方法,一个是rawQuery(),另一个是query()方法。
public void queryData(View view) { StringBuilder stringBuilder=new StringBuilder(); SQLiteDatabase sqLiteDatabase=dbHelper.getReadableDatabase(); Cursor cursor=sqLiteDatabase.query("book",null,null,null,null,null,null);//表示查询的是所有数据 if(cursor.moveToFirst()) { do{ String name=cursor.getString(cursor.getColumnIndex("name")); String author=cursor.getString(cursor.getColumnIndex("author")); int pages=cursor.getInt(cursor.getColumnIndex("pages")); double price=cursor.getDouble(cursor.getColumnIndex("price")); stringBuilder.append(name+"-"+author+"-"+pages+"-"+price); }while(cursor.moveToNext());//是否有下一条值 } //当需要操作很长的字符串,或者要对字符串进行非常频繁的操作时,应该使用StringBuilder,其余场合,用String比较方便。 Toast.makeText(this,stringBuilder.toString(),Toast.LENGTH_LONG).show(); }}
2 0
- SQLite数据库的基本操作
- SQLite数据库的基本操作
- sqlite数据库的基本操作
- SQLite数据库---数据库的基本操作
- sqlite数据库基本操作
- SQLite数据库基本操作
- sqlite数据库基本操作
- SQLite数据库基本操作
- 数据库sqlite基本操作
- SQLite数据库基本操作
- sqlite 数据库基本操作
- SQLite数据库基本操作
- 数据库 SQLite数据库基本操作
- SQLite数据库的基本操作指令集合
- ios sqlite数据库的基本操作
- Android的SQLite数据库基本操作
- IOS的SQLITE数据库基本操作
- android数据库sqlite基本操作。
- request.getParameter()中文乱码
- JQuery学习笔记
- libdecodeqr库不能识别大角度二维码问题解决
- 整理的前端面试题2
- Android Studio 与 Unity3d交互(一)
- SQLite数据库---数据库的基本操作
- Problem G: Sequence Number----暴力
- [剑指offer]重建二叉树
- Ubuntu16.04安装Macbuntu 秒变Mac os
- AS打包apk及常见错误解决办法Error:(4) Error: "ssdk_instapager_login_html" is not translated in "en" (English)
- 屏蔽android ota升级包时间戳比较
- CSDN日报20170424 ——《技术方向的选择》
- jenkins复制项目插件、Fir.im、SCM、multibranc链接推荐
- Mysql的基本操作