新建一个java类 继承SQLiteOpenHelper
public class MyDatabaseHelper extends SQLiteOpenHelper {
/*建表语句 用sql写
创建一个book表 有5个字段*/
public static final String CREATE_BOOK = "create table book("
+ "id integer primary key autoincrement,"
+ "author text,"
+ "price real,"
+ "pages int,"
+ "name text)";
public static final String CREATE_CATEGORY = "create table Category ("
+ "id integer primary key autoincrement, "
+ "category_name text, "
+ "category_code integer)";
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
/*第一次创建数据库的时候会执行这个函数
所以在这个函数里建表
db.execSQL() 函数 这个函数经常要用的
用来执行sql命令 接收一个String参数
把刚刚写的sql语句传进去 就能创建表了 */
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_CATEGORY);
}
/*升级数据库的时候会执行这个函数
比如要新增字段 新增加表 就在这个函数里操作*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
在Activity里调用数据库
先new一个MyDatabaseHelper
MyDatabaseHelper databaseHelper = new MyDatabaseHelper(
this, \\上下文 传入Activity
"book.db", \\数据库的文件名
null,
2 \\数据库版本
);
调用MyDatabaseHelper 的getWritableDatabase 获取数据库
以后就可以用db操作数据库了
SQLiteDatabase db = databaseHelper.getWritableDatabase();
插入数据 可以用db.execSQL执行sql语句
第一个参数是sql语句,第二个参数是数据 用一个String数组包装
下面插入一本书到book表,书名精通java 作者Dan Brown 454页 价格99
db.execSQL("insert into Book "
+ "(name,author,pages,price)"
+ "values(?,?,?,?)" ,
new String[]{ "精通java", "Dan Brown", "454", "99"}
);
也可以用db的insert()函数插入 先声明一个 ContentValues
ContentValues values = new ContentValues();
//用ContentValues ,put方法传入数据
//第一个参数是字段名,第二个参数是数据
values.put("name", "精通java");
values.put("author", "Dan Brown");
values.put("pages", 454);
values.put("price", 999);
//调用db的insert()插入 第一个参数是表名 第三个是ContentValues
db.insert("Book", null, values);
//查询 用db.query 返回一个Cursor 里面有数据
Cursor cursor = db.query("Book",
null, null, null, null, null, null);
//查之前先把Cursor位置移到第一 从第一条开始查
boolean succeed = (cursor.moveToFirst();
if ( succeed ) {
do {
//先判断字段的数据类型 如果是String 就用 cursor.getString
// 是Double 就用 cursor.getDouble 以此类推
//cursor.getString函数需要传入 ColumnIndex
//用 cursor.getColumnIndex 传入字段名
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"));
//查完一条之后调用cursor.moveToNext()把cursor的位置移动到下一条
} while (cursor.moveToNext());
}
//全部查完后 把cursor关闭
cursor.close();
Android安卓开发 自带数据库SQLite使用教程
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本教程致力于程序员可以快速的学习安卓移动端手机开发。 适合于已经习得一种编程语言的同仁。 更多志同道合,想要学习更...
- 本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁。 本...
- 1.在你使用之前,建议你先阅读一下官方文档https://agrosner.gitbooks.io/dbflow/...
- 01 早上六点半,被男朋友从睡梦中喊起来轰出了家门。 理由是他爸妈一会儿要来看他,而他的家人并不知道我的存在。 在...