一
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;
}
}