数据库

package com.bwie.newsmonth06.db;

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

/**
 * Created by eric on 2018/9/19.
 */

public class DBHelper extends SQLiteOpenHelper {
    public static final String DB_NAME = "channel.db";
    public static final int DB_VERSION = 1;

    public DBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table " + ChannelDao.TABLE_NAME + "(" + ChannelDao.COLUMN_ID + " integer primary key," +
                ChannelDao.COLUMN_NAME + " text," +
                ChannelDao.COLUMN_PARAM + " text," +
                ChannelDao.COLUMN_TYPE + " integer)";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

package com.bwie.newsmonth06.db;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.bwie.newsmonth06.bean.Channel;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by eric on 2018/9/19.
 */

public class ChannelDao {
    private final SQLiteDatabase db;
    public static final String TABLE_NAME = "channel";
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_NAME = "name";
    public static final String COLUMN_PARAM = "param";
    public static final String COLUMN_TYPE = "type";

    public ChannelDao(Context context) {
        DBHelper helper = new DBHelper(context);
        db = helper.getWritableDatabase();
    }

    /**
     * 插入一条语句
     *
     * @param channel
     * @return
     */
    public long insert(Channel channel) {
        if (hasId(channel.getId())) {
            return 0;
        }
        ContentValues values = new ContentValues();
        values.put(COLUMN_ID, channel.getId());
        values.put(COLUMN_NAME, channel.getName());
        values.put(COLUMN_PARAM, channel.getParma());
        values.put(COLUMN_TYPE, channel.getType());
        return db.insert(TABLE_NAME, null, values);
    }

    /**
     * 插入一个集合的数据
     *
     * @param channels
     * @return
     */
    public int insert(List<Channel> channels) {
        int count = 0;
        ContentValues values = new ContentValues();
        for (Channel channel : channels) {
            if (!hasId(channel.getId())) {
                values.put(COLUMN_ID, channel.getId());
                values.put(COLUMN_NAME, channel.getName());
                values.put(COLUMN_PARAM, channel.getParma());
                values.put(COLUMN_TYPE, channel.getType());
                long l = db.insert(TABLE_NAME, null, values);
                if (l > 0) {
                    count++;
                }
            }

        }
        return count;
    }

    /**
     * 更新一条数据
     *
     * @param channel
     * @return
     */
    public int update(Channel channel) {
        ContentValues values = new ContentValues();
        values.put(COLUMN_ID, channel.getId());
        values.put(COLUMN_NAME, channel.getName());
        values.put(COLUMN_PARAM, channel.getParma());
        values.put(COLUMN_TYPE, channel.getType());
        return db.update(TABLE_NAME, values, COLUMN_ID + "=?", new String[]{channel.getId() + ""});
    }

    /**
     * 判断数据库中是否有这条数据
     *
     * @param id
     * @return
     */
    public boolean hasId(int id) {
        Cursor cursor = db.query(TABLE_NAME, null, COLUMN_ID + "=?", new String[]{id + ""}, null, null, null);
        if (cursor.moveToNext()) {
            return true;
        }
        return false;
    }

    /**
     * 查询所有的频道数据
     *
     * @return
     */
    public List<Channel> queryAll() {
        List<Channel> list = new ArrayList<>();
        Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
        while (cursor.moveToNext()) {
            Channel channel = new Channel();
            channel.setId(cursor.getInt(cursor.getColumnIndex(COLUMN_ID)));
            channel.setName(cursor.getString(cursor.getColumnIndex(COLUMN_NAME)));
            channel.setParma(cursor.getString(cursor.getColumnIndex(COLUMN_PARAM)));
            channel.setType(cursor.getInt(cursor.getColumnIndex(COLUMN_TYPE)));
            list.add(channel);
        }
        return list;
    }
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值