1.建表语句
create table Book ( id integer primary key autoincrement, author text, price real, pages integer, name text)
它的数据类型很简单,integer表示整型, real 表示浮点型,text 表示文本类型,blob 表示二进制类型。另外,上述建表语句中我们还 使用了 primary key将 id列设为主键,并用 autoincrement关键字表示 id列是自增长的。
2.新建 MyDatabaseHelper 类继承自 SQLiteOpenHelper
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_BOOK = "create table book (" + "id integer primary key autoincrement, " + "author text, " + "price real, " + "pages integer, " + "name text)";
private Context mContext;
public MyDatabaseHelper(Context context, String name, CursorFactory factory, int version)
{ super(context, name, factory, version); mContext = context; }
@Override
public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_BOOK); Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show(); }
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}
3.Mainactivity中的代码
public class MainActivity extends Activity {
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 1); Button createDatabase = (Button)findViewById(R.id.create_database);
createDatabase.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) { dbHelper.getWritableDatabase(); }
});
}
}
这里我们在 onCreate()方法中构建了一个 MyDatabaseHelper对象,并且通过构造函数的 参数将数据库名指定为 BookStore.db,版本号指定为 1,然后在 Create database 按钮的点击 事件里调用了 getWritableDatabase()方法。这样当第一次点击 Create database按钮时,就会检测 到当前程序中并没有 BookStore.db这个数据库,于是会创建该数据库并调用 MyDatabaseHelper 中的 onCreate()方法,这样 Book表也就得到了创建,然后会弹出一个 Toast提示创建成功。 再次点击 Create database按钮时,会发现此时已经存在 BookStore.db数据库了,因此不会再 创建一次。