您的位置:首页 > 移动开发 > Android开发

Android SQLite数据库相关知识

2015-12-03 14:19 681 查看

学习笔记。 我随意写,你随意看

参考书:《第一行代码》

一、如何创建数据库?

直接上项目:点击按钮生成一个BookStore数据库

1、新建一个Android工程,新建MyDatabaseHelper类

public class MyDatabaseHelper extends SQLiteOpenHelper {

// 将SQL建表语句定义成一个字符串常量,这里不懂先记住写法
// integer=整型;real=浮点型;text=文本类型;blob=二进制类型; 用primary key将id列设为主键,并用autoincrement关键字表示id列是自增长的
public static final String CREATE_BOOK = "create table Book ("
+ "id integer primary key autoincrement, " + "author text, "
+ "price real, " + "pages integer, " + "name text)";

public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}

// 下面两个重写方法必不可少,在onCreate中实现创建数据库,在onUpgrade中实现升级数据库
@Override
public void onCreate(SQLiteDatabase db) {
// 调用SQLiteDatabase的execSQL方法执行建表语句
db.execSQL(CREATE_BOOK);
}

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

}

}


2、修改activity_main.xml中代码(放置一个Button,id为create_database)

3、最后修改MainActivity.java中代码

public class MainActivity extends Activity {

private Button createDatabase;
private MyDatabaseHelper dbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 构建一个MyDatabaseHelper对象,通过构造函数给数据命名,版本号指定为1,第三个参数一般为null
dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 1);
createDatabase = (Button) findViewById(R.id.create_database);

createDatabase.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 调用getWritableDatabase方法,第一次点击会检测到程序中没有BookStore.db数据库,于是会创建数据库,并调用MyDatabaseHelper中onCreate方法执行其中建表语句
// 再次点击按钮调用getWritableDatabase方法时会发现程序中已经有了BookStore.db数据库,因此不会再创建一次
dbHelper.getWritableDatabase();
}
});
}
}

// getReadableDatabase()和getWritableDatabase()这两个方法都可以创建或打开一个现有的数据库,并返回一个SQLiteDatabase对象,通过这个对象可对数据库进行读写操作。
// 这两个方法的区别,当数据库不可写入时,getReadableDatabase()方法返回的对象以只读的方式去打开数据库,而getWritableDatabase()方法将出现异常。


4、如何验证数据是否建立成功?使用adb shell来对数据库和表的创建情况进行检查。

这里adb使用参考:/article/10752113.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: