「一句话经典」Android创建SQLite数据库

本文介绍了如何在Android应用中创建SQLite数据库,包括创建SQLiteHelper子类,定义数据库版本和名称,利用DBManager单例管理数据库操作,以及在MainActivity中初始化数据库。详细步骤和资源可在优快云下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySqliteHelper

 「一句话经典」Android创建SQLite数据库:

创建SQLiteHelper子类MySqliteHelper 并将数据库版本与数据库名保存在常量类Contant中,然后创建数据库操作工具类DBManger用一个单例来创建MySQLiteHelper,最后在在MainActivity类中创建数据库类MySqliteHelper并使用DBManager.getInstance(Context) 获取或初始化数据库单例。

附--方案详见优快云下载链接:http://download.youkuaiyun.com/detail/z00238082/9748372 


1:  布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.crazy.caz.t170206.sqlitedemo.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ffbbff"
        android:onClick="createDb"
        android:text="创建数据库" />
</RelativeLayout>


2: 工具类 Constant

package com.crazy.caz.t170206.utils;

/**
 * Created by caz on 2017/2/6.
 */
//Todo 为MySqliteHelper等类提供数据库常量支持
public class Constant {
    public static final String DATABASE_NAME="info.db"; //数据库名称
    public static final int DATABASE_VERSION=1; //数据库版本号
    public static final String TABLE_NAME="";//表名
}
package com.crazy.caz.t170206.utils;

/**
 * Created by caz on 2017/2/6.
 */
//Todo 为MySqliteHelper等类提供数据库常量支持
public class Constant {
    public static final String DATABASE_NAME="info.db"; //数据库名称
    public static final int DATABASE_VERSION=1; //数据库版本号
    public static final String TABLE_NAME="";//表名
}

3:  数据库帮助类 MySqliteHelper

package com.crazy.caz.t170206.utils;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * sqliteOpenHelper
 * 1:提供onCreate() onUpgrade() 等创建数据库更新数据库的方法
 * 2:提供了获取数据库对象的函数
 *                              Created by caz on 2017/2/6.
 */
public class MySqliteHelper extends SQLiteOpenHelper {

    /**
     * 构造函数
     * @param context 上下文对象
     * @param name      数据库名
     * @param factory   工厂
     * @param version   数据库版本 >=1
     */
    public MySqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    public MySqliteHelper   (Context context){
        super(context,Constant.DATABASE_NAME,null,Constant.DATABASE_VERSION);

    }
    /**
     * 当数据库创建时回调的函数
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    /**
     * 当数据库版本更新时回调的函数
     * @param db    数据库对象
     * @param oldVersion 数据旧版本
     * @param newVersion    数据库新版本
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    /**
     * 当数据库打开时回调的函数
     * @param db
     */
    @Override
    public void onOpen(SQLiteDatabase db) {
        super.onOpen(db);
    }
}



4: 数据库操作工具类 DbManager

package com.crazy.caz.t170206.utils;

import android.content.Context;

/**  主要是对数据库操作的工具类,主要是用单例li的形式
 *      sqlite数据库:就相当于一个持久化的数据库
 *           Activity:是相当于整个页面数据的展示、
 *      数据处理工具类:   正常的为了降低耦合度,一般都会在utils包下创建一个单独处理业务逻辑的类
 * Created by caz on 2017/2/6.
 */

public class DbManager {
    /*
    思路:现构建一个SQLite帮助类的对象,
    然后使用 getIntance()中判断
     */
    private static MySqliteHelper helper;
    //public static MySqliteHelper helper;
    public static MySqliteHelper getIntance(Context context){
        if (helper==null){
           helper=new MySqliteHelper(context);
        }

        return helper;
    }
}

5:  活动类 MainActivity

package com.crazy.caz.t170206.sqlitedemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.crazy.caz.t170206.R;
import com.crazy.caz.t170206.utils.DbManager;
import com.crazy.caz.t170206.utils.MySqliteHelper;

public class MainActivity extends AppCompatActivity {
    private MySqliteHelper helper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        helper= DbManager.getIntance(this);
    }

    /**
     * 点击按钮创建数据库
     * @param view
     */
    public void createDb(View view){
	/**
         * getReadableDatabase() \getWritableDatabase():创建或者打开数据库
         * 如果数据库不存在则创建数据库,如果存在则直接打开数据库
         * 默认情况下两个函数都表示打开或者创建可读可写的数据库对象,
         *      如果磁盘已满或者是数据库本身权限等情况下getReadableDatabase()打开的是只读数据库
         */

        SQLiteDatabase db = helper.getReadableDatabase();
        // helper.getWritableDatabase();
        Toast.makeText(this, "数据库路径: " + db.getPath(), Toast.LENGTH_SHORT).show();
        System.out.println("数据库路径:" + db.getPath());
}}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值