SQLite数据库存储之创建数据库
来源:互联网 发布:数据库的复制 编辑:程序博客网 时间:2024/06/05 04:41
根据郭霖的《第一行代码》摘要总结
一.创建数据库
SQLiteOpenHelper是一个抽象类,所以必须要创建一个自己的帮助类去继承它。SQLiteOpenHelper中有两个抽象方法。分别是onCreat()和onUpgrade()方法,因此我们必须在自己的帮助类里面去重写这两个方法,然后分别在这两个数据库中去实现创建,升级数据库的逻辑。
SQLiteOpenHelper中有两个非常重要的实例方法,getReadableDataBase()和getWriteableDataBase()。这两个方法都可以创建或者打开一个现有的数据库(如果数据库已存在则直接打开,否则当就创建一个新的数据库),并返回一个可对数据库进行读写操作的对象。当数据库不可写入的时候,getReadableDataBase()返回的对象只能以只读的方式去打开数据库,而getWriteableDataBase()方法将出现异常。
SQliteOpenHelper中的构造方法的重写,第一个参数是context,第二个参数是数据库名,第三个参数允许我们在查询数据的时候返回一个自定义的Cursor,一般都传入null,第四个参数表示当前数据库的版本号。
要创建一个名为BookStore.db的数据库,在这个数据库中新建一个Book表。
public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_BOOK="create table book(" /*使用了primary key将id列设置为主键,并用autoincrement关键字表示id列是自增长的*/ + "id integer primary key autoincrement," +"author text," +"price real," +"pages integer," +"name text)"; private Context mContext; public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); mContext=context; } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_BOOK); Toast.makeText(mContext,"创建成功",Toast.LENGTH_SHORT).show(); }}
我们把建表语句定义成了一个字符串常量,并在onCreat()方法中又调用了SQLiteDataBase的execSQL()方法去执行这条建表语句,并弹出Toast提示成功。
修改activity_main.xml中的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.asus.sqlitetest.MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="保存" /></LinearLayout>
在布局中加入了创建一个按钮用于创建数据库。
最后修改MainActivity中的代码:
public class MainActivity extends AppCompatActivity { private MyDatabaseHelper dbhelper; private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbhelper=new MyDatabaseHelper(this,"BookStore.db",null,1); button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dbhelper.getWritableDatabase(); } }); }}
- SQLite数据库存储之创建数据库
- SQLite数据库存储之创建数据库
- SQLite存储--创建数据库
- 创建sqlite数据库存储数据
- 数据存储--SQLite创建数据库
- Android存储之SQLite数据库
- android存储之SQLite数据库
- SQLite数据库存储之升级数据库
- SQLite数据库存储之更新数据库
- 在本地创建SQLite数据库存储数据
- Android数据存储之SQLite数据库存储
- Android数据存储之SQLite数据库存储
- Android数据存储之SQLite数据库存储
- Android数据存储之:SQLite数据库存储
- 数据存储之SQLite数据库存储
- 文件存储之SQLite数据库存储
- Android 数据存储之SQLite数据库存储
- Android数据存储之SQLite数据库存储
- HDU 1402 A * B Problem Plus FFT
- 制作文字阴影
- mongodb 命令行
- 练习
- 使用Android studio转换Jar包时,遇到的一个问题------> Could not find tools.jar.
- SQLite数据库存储之创建数据库
- Myeclipse 创建Maven项目:Cannot detect Web Project version
- geoserver、openlayers、PostgreSQL 开发环境配置
- 一文搞定深度学习入门级电脑硬件配置
- error lnk2019:无法解析外部符号
- 程序员绩效
- SpringMVC的初步配置(非注解)
- OBS中文网
- thinkphp 正则表达式分组替换