数据库和表的创建(SQLiteOpenHelper)
Posted 懂你在爱我
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库和表的创建(SQLiteOpenHelper)相关的知识,希望对你有一定的参考价值。
1.android为了让我们能够更加方便地管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级。SQLiteOpenHelper是一个抽象类,如果想使用它的话,就要创建一个自己的帮助类(这里我们以自己创建的mysqliteHelper类去继承)去继承它。SQLiteOpenHelper中有两个抽象方法,分别是onCreate()和onUpgrade(),我们必须在自己的帮助类里面重写这两个方法,然后在这两个方法中实现创建、升级数据库的逻辑。
2.为了以后方便修改数据库名,表名及相关字段,专门创建一个常量类(Constant)进行管理。专门创建一个类(DbManger)进行对数据库操作的工具栏。在MainActivity类中通过点击按钮来创建数据库和表。
3.<1>MySqliteHelper类代码:
public class MySqliteHelper extends SQLiteOpenHelper { public MySqliteHelper(Context context) { super(context, Constant.DATABASE_NAME, null, Constant.DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { //创建表结构 String sql = "create table "+Constant.TABLE_NAME+"("+ Constant.ID+" integer primary key autoincrement,"+ Constant.NAME+" varchar(20)," + Constant.AGE+" integer)"; sqLiteDatabase.execSQL(sql);//执行sql语句 } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
<2>Constant类代码:
public class Constant { public static final String DATABASE_NAME = "info.db";//数据库名称 public static final int DATABASE_VERSION = 1;//数据库版本号 public static final String TABLE_NAME = "person";//表名 public static final String ID = "id";//表字段 public static final String NAME = "name";//表字段 public static final String AGE = "age";//表字段 }
<3>DbManger类代码:
/** * Created by lance on 2017/2/27. * 主要是对数据库操作的工具栏 */ public class DbManger { private static MySqliteHelper mMySqliteHelper; public static MySqliteHelper getIntance(Context context){ if(mMySqliteHelper == null){ mMySqliteHelper = new MySqliteHelper(context); } return mMySqliteHelper; } }
<4>MainActivity类代码:
public class MainActivity extends AppCompatActivity { private Button mDbButton; private MySqliteHelper mMySqliteHelper; private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMySqliteHelper = DbManger.getIntance(MainActivity.this); mDbButton = (Button) findViewById(R.id.create_db); /** * 点击按钮创建数据库 */ mDbButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /* getReadableDatabase()和getWritableDatabase()都是创建或打开数据库 如果数据库不存在则创建数据库,如果数据库存在直接打开数据库 默认情况下这两个函数都表示打开或创建可读可写的数据库对象,如果磁盘已满或者是 数据库本身权限等情况下getReadableDatabase()打开的是只读数据库 */ db = mMySqliteHelper.getWritableDatabase(); } }); } }
以上是关于数据库和表的创建(SQLiteOpenHelper)的主要内容,如果未能解决你的问题,请参考以下文章