src\MyApplication\app\src\main\java\com\example\administrator\myapplication\db\DatabaseHelper.java

This commit is contained in:
zhangnaifu15 2018-05-08 21:15:45 +08:00
parent d043fb64a3
commit 07fb02b92d
2 changed files with 217 additions and 0 deletions

View File

@ -0,0 +1,37 @@
package com.example.administrator.myapplication.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String COOLNOTE_DATABASE_NAME = "coolnote";
public static final String NOTE_TABLE_NAME = "htq_Notebook";
public static final String CREATE_NOTE_TABLE = "create table "
+ NOTE_TABLE_NAME
+ " (_id integer primary key autoincrement, objectid text, iid integer,"
+ " time varchar(10), date varchar(10), content text, color integer)";
public static final String NEWS_LIST = "osc_news_list";
public static final String CREATE_NEWS_LIST_TABLE = "create table "
+ NOTE_TABLE_NAME + "(" + "_id integer primary key autoincrement, "
+ "news_id interger, title varchar(10), " + ")";
public DatabaseHelper(Context context) {
super(context, COOLNOTE_DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_NOTE_TABLE);
// db.execSQL(CREATE_NEWS_LIST_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}

View File

@ -0,0 +1,180 @@
package com.example.administrator.myapplication.db;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.administrator.myapplication.entity.NotebookData;
import com.example.administrator.myapplication.utils.AccountUtils;
import com.example.administrator.myapplication.utils.StringUtils;
import java.util.ArrayList;
import java.util.List;
public class NoteDatabase {
private final DatabaseHelper dbHelper;
public NoteDatabase(Context context) {
super();
dbHelper = new DatabaseHelper(context);
}
/**
*
*
* @param data
*/
public void insert(NotebookData data) {
String sql = "insert into " + DatabaseHelper.NOTE_TABLE_NAME;
sql += "(_id, objectid, iid, time, date, content, color) values(?, ?, ?, ?, ?, ?, ?)";
SQLiteDatabase sqlite = dbHelper.getWritableDatabase();
sqlite.execSQL(sql, new String[] { data.getId() + "",
data.getIid() + "", data.getObjectId(), data.getUnixTime() + "", data.getDate(),
data.getContent(), data.getColor() + "" });
sqlite.close();
}
/**
*
*
* @param id
*/
public void delete(int id) {
SQLiteDatabase sqlite = dbHelper.getWritableDatabase();
String sql = ("delete from " + DatabaseHelper.NOTE_TABLE_NAME + " where _id=?");
sqlite.execSQL(sql, new Integer[] { id });
sqlite.close();
}
/**
*
*
* @param data
*/
public void update(NotebookData data) {
SQLiteDatabase sqlite = dbHelper.getWritableDatabase();
String sql = ("update " + DatabaseHelper.NOTE_TABLE_NAME + " set iid=?, objectid=?, time=?, date=?, content=?, color=? where _id=?");
sqlite.execSQL(sql,
new String[] { data.getIid() + "", data.getObjectId() + "", data.getUnixTime() + "",
data.getDate(), data.getContent(),
data.getColor() + "", data.getId() + "" });
sqlite.close();
}
public List<NotebookData> query() {
return query(" ");
}
/**
*
*
* @param where
* @return
*/
public List<NotebookData> query(String where) {
SQLiteDatabase sqlite = dbHelper.getReadableDatabase();
ArrayList<NotebookData> data = null;
data = new ArrayList<NotebookData>();
Cursor cursor = sqlite.rawQuery("select * from "
+ DatabaseHelper.NOTE_TABLE_NAME + where, null);
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
NotebookData notebookData = new NotebookData();
notebookData.setId(cursor.getInt(0));
notebookData.setObjectId(cursor.getString(1));
notebookData.setIid(cursor.getInt(2));
notebookData.setUnixTime(cursor.getString(3));
notebookData.setDate(cursor.getString(4));
notebookData.setContent(cursor.getString(5));
notebookData.setColor(cursor.getInt(6));
data.add(notebookData);
}
if (!cursor.isClosed()) {
cursor.close();
}
sqlite.close();
return data;
}
/**
* 重置
*
* @param datas
*/
public void reset(List<NotebookData> datas) {
if (datas != null) {
SQLiteDatabase sqlite = dbHelper.getWritableDatabase();
// 删除全部
sqlite.execSQL("delete from " + DatabaseHelper.NOTE_TABLE_NAME);
// 重新添加
for (NotebookData data : datas) {
insert(data);
}
sqlite.close();
}
}
/**
* 保存一条数据到本地(若已存在则直接覆盖)
*
* @param data
*/
public void save(NotebookData data) {
List<NotebookData> datas = query(" where _id=" + data.getId());
if (datas != null && !datas.isEmpty()) {
update(data);
} else {
insert(data);
}
}
//
// /**
// * 合并一条数据到本地(通过更新时间判断仅保留最新)
// *
// * @param data
// * @return 数据是否被合并了
// */
// public boolean merge(NotebookData data) {
// Cursor cursor = sqlite.rawQuery(
// "select * from " + DatabaseHelper.NOTE_TABLE_NAME
// + " where _id=" + data.getId(), null);
// NotebookData localData = new NotebookData();
// // 本循环其实只执行一次
// for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
// localData.setId(cursor.getInt(0));
// localData.setIid(cursor.getInt(1));
// localData.setUnixTime(cursor.getString(2));
// localData.setDate(cursor.getString(3));
// localData.setContent(cursor.getString(4));
// localData.setColor(cursor.getInt(5));
// }
// // 是否需要合这条数据
// boolean isMerge = localData.getUnixTime() < data.getUnixTime();
// if (isMerge) {
// save(data);
// }
// return isMerge;
// }
public void destroy() {
dbHelper.close();
}
public void insertIntroduce(Context context)
{
NotebookData editData=new NotebookData();
if (editData.getId() == 0) {
editData.setId(-1
* StringUtils.toInt(
StringUtils.getDataTime("dddHHmmss"), 0));
}
editData.setUnixTime(StringUtils.getDataTime("yyyy-MM-dd HH:mm:ss"));
editData.setContent("欢迎使用嗖藏,赶快记下你此刻的灵感吧!");
editData.setUserId(AccountUtils.getUserId(context));
save(editData);
}
}