美文网首页
# 数据库的创建步骤

# 数据库的创建步骤

作者: hiandg | 来源:发表于2017-10-25 09:33 被阅读0次

写这篇文章的主要目的是为了方便以后查找

1.SQLiteOpenHelper

//数据库名称
    private static final String DATABASENAME = "cainiaomusic.db";
    //数据库版本
    private static final int DATABASEVERSION = 1;

    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    public DBHelper(Context context) {
        super(context, DATABASENAME, null, DATABASEVERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //用户表
//        db.execSQL(AccountDao.createTable());
//        db.execSQL(AccountDao.createIndex());
        //歌曲表
        db.execSQL(SongDao.createTable());
        db.execSQL(SongDao.createIndex());
        //收藏夹表
        db.execSQL(CollectionDao.createTable());
        //收藏夹关联表
        db.execSQL(CollectionShipDao.createTable());
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //db.execSQL("ALTER TABLE note ADD COLUMN marktes integer");//增减一项 保存用户数据
        //onCreate(db);
    }

2.SQLiteDatabase

执行CRUD的操作

/**
 * @desciption: 基础dao层
 */
public abstract class BaseDao {

    protected SQLiteDatabase db;
    protected DBHelper dh;

    public BaseDao() {
        dh = new DBHelper(MyApplication.getInstance().getApplicationContext());
        db = dh.getWritableDatabase();
    }

    public void close() {
        db.close();
        dh.close();
    }

    public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy){
        Cursor c = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
        return c;
    }

    public long insert (String table, String nullColumnHack, ContentValues values){
        return db.insert(table,nullColumnHack,values);
    }


    public int delete(String table, String whereClause, String[] whereArgs){
        return db.delete(table,whereClause,whereArgs);
    }

    public int update(String table, ContentValues values, String whereClause, String[] whereArgs){
        return db.update(table,values,whereClause,whereArgs);
    }

    /**
     * 数据替换,原理是先删除存在的整行数据后在重新插入
     * 需要先指定索引才能使用
     * @param table
     * @param nullColumnHack
     * @param initialValues
     * @return
     */
    public long replace(String table, String nullColumnHack, ContentValues initialValues){
        return db.replace(table,nullColumnHack,initialValues);
    }
}
/**
 * @desciption: 收藏夹数据表
 */
public class CollectionDao extends BaseDao {

    private static final String TABLE = "COLLECTION";

    private final static String COLUMN_ID = "_id";
    private final static String COLUMN_TITLE = "title";
    private final static String COLUMN_COVER_URL = "cover_url";
    private final static String COLUMN_DESCRIPTION = "description";
    private final static String COLUMN_COUNT = "count";

    /**
     * 建表sql
     *
     * @return sql
     */
    public static String createTable() {
        StringBuilder sb = new StringBuilder();
        sb.append("CREATE TABLE IF NOT EXISTS " + TABLE + "(");
        sb.append(COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,");
        sb.append(COLUMN_TITLE + " varchar(100),");
        sb.append(COLUMN_COVER_URL + " varchar(200),");
        sb.append(COLUMN_DESCRIPTION + " TEXT,");
        sb.append(COLUMN_COUNT + " INTEGER");
        sb.append(");");
        return sb.toString();
    }

    /**
     * 获取表上的所有收藏夹
     *
     * @return collectionList
     */
    public List<CollectionBean> queryAll() {
        List<CollectionBean> collectionList = new ArrayList<>();
        Cursor cursor = query(TABLE, null, null, null, null, null, null);
        while (cursor.moveToNext()) {
            collectionList.add(getCollection(cursor));
        }
        cursor.close();
        return collectionList;
    }

    /**
     * 获取表上的收藏夹
     *
     * @return 收藏夹
     */
    public CollectionBean query(int id) {
        CollectionBean bean = null;
        String selection = COLUMN_ID + "=?";
        String[] selectionArgs = new String[]{String.valueOf(id)};
        List<CollectionBean> collectionList = new ArrayList<>();
        Cursor cursor = query(TABLE, null, selection, selectionArgs, null, null, null);
        if (cursor.moveToNext()) {
            bean = getCollection(cursor);
        }
        cursor.close();
        return bean;
    }


    /**
     * 插入一条收藏夹记录
     *
     * @param collectionBean
     */
    public long insertCollection(CollectionBean collectionBean) {
        return insert(TABLE, null, getCollectionContent(collectionBean));
    }

    /**
     * 更新一条收藏夹信息
     *
     * @param collectionBean
     */
    public int updateCollection(CollectionBean collectionBean) {
        String whereClause = COLUMN_ID + "=?";
        String[] whereArgs = new String[]{collectionBean.getId() + ""};
        return update(TABLE, getCollectionContent(collectionBean), whereClause, whereArgs);
    }

    /**
     * 删除一条收藏夹信息
     *
     * @param collectionBean
     */
    public void deleteCollection(CollectionBean collectionBean) {
        String whereClause = COLUMN_ID + "=?";
        String[] whereArgs = new String[]{collectionBean.getId() + ""};
        delete(TABLE, whereClause, whereArgs);
    }

    private CollectionBean getCollection(Cursor cursor) {
        int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID));
        String title = cursor.getString(cursor.getColumnIndex(COLUMN_TITLE));
        String description = cursor.getString(cursor.getColumnIndex(COLUMN_DESCRIPTION));
        String coverUrl = cursor.getString(cursor.getColumnIndex(COLUMN_COVER_URL));
        int count = cursor.getInt(cursor.getColumnIndex(COLUMN_COUNT));
        CollectionBean collection = new CollectionBean(id, title, coverUrl, count, description);
        return collection;
    }

    public ContentValues getCollectionContent(CollectionBean collection) {
        ContentValues values = new ContentValues();
        values.put(COLUMN_TITLE, collection.getTitle());
        values.put(COLUMN_COVER_URL, collection.getCoverUrl());
        values.put(COLUMN_DESCRIPTION, collection.getDescription());
        values.put(COLUMN_COUNT, collection.getCount());
        return values;
    }
}

相关文章

  • JDBC创建步骤

    JDBC基本创建步骤 简单来说,JDBC就是使用Java语言操作关系型数据库的一套API 创建步骤 创建工程,导入...

  • Nacos的MySQL数据源部署模式

    步骤一:安装MySQL数据,版本要求:5.6.5+ 步骤二:初始化数据库 创建数据库 初始化数据库 在nacos ...

  • ssm简介

    1. mybatis 单独使用jdbc编程步骤:1、 加载数据库驱动2、 创建并获取数据库链接3、 创建jd...

  • 第十七章 JDBC

    JDBC 一、JDBC访问数据库步骤 面试回答: ①加载JDBC驱动 ②创建数据库连接(Connection) ③...

  • # 数据库的创建步骤

    写这篇文章的主要目的是为了方便以后查找 1.SQLiteOpenHelper 2.SQLiteDatabase 执...

  • Mysql----同步,克隆数据库表

    同步,克隆数据库表:步骤 1. 先创建一个新的数据库: CREATEDATABASEIFNOTEXISTSnew_...

  • 打开phpmyadmin显示高级功能尚未完全设置部分功能未激活

    搞定步骤如下:创建phpmyadmin数据库导入phpMyAdmin目录examples\create_table...

  • MongoDB 基本操作

    操作MongoDB的步骤 1.创建数据库中数据的存储目录 2.启动MongoDB的服务实例 3.创建数据库 4.创...

  • 数据库查询汉字排序

    Android SQLite(原生) 步骤1: 在创建数据库的地方 写上这句代码 步骤2: 在查询语句 最后面 加...

  • sphinx的使用

    配置Sphinx(重要)步骤1:创建youhua3数据库 步骤2:将etc/csft_mysql.conf复制并更...

网友评论

      本文标题:# 数据库的创建步骤

      本文链接:https://www.haomeiwen.com/subject/vhgfpxtx.html