码迷,mamicode.com
首页 > 数据库 > 详细

数据库和表的创建(SQLiteOpenHelper)

时间:2017-03-14 22:47:14      阅读:452      评论:0      收藏:0      [点我收藏+]

标签:rem   表名   帮助   his   版本   代码   只读   nbsp   读数   

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)

标签:rem   表名   帮助   his   版本   代码   只读   nbsp   读数   

原文地址:http://www.cnblogs.com/shuiyin/p/6551046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!