Android sqlite工具类
2015-11-04 11:47
537 查看
创建sqlite数据库
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
//数据库名字
private static final String DB_NAME = "note.db";
//本版号
private static final int VERSION = 1;
//创建表
private static final String CREATE_TABLE_NOTE = "CREATE TABLE note(_id integer primary key autoincrement,"+
"title text, content text, createDate text, updateDate text)";
//删除表
private static final String DROP_TABLE_NOTE = "drop table if exists note";
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//SQLiteDatabase 用于操作数据库的工具类
db.execSQL(CREATE_TABLE_NOTE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DROP_TABLE_NOTE);
db.execSQL(CREATE_TABLE_NOTE);
}
}
下面是采用原生的方式进行增删改查
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.recker.note.data.MetaData;
import com.recker.note.data.Note;
import java.util.ArrayList;
public class DatabaseAdapter {
private DatabaseHelper dbHelper;
public DatabaseAdapter(Context context) {
dbHelper = new DatabaseHelper(context);
}
/**
* 添加数据
*
* @param note
*/
public void create(Note note) {
String sql = "insert into note(title, content, createDate, updateDate)values(?,?,?,?)";
Object[] args = {note.getTitle(), note.getContent(), note.getCreateDate(), note.getUpdateDate()};
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL(sql, args);
db.close();
}
/**
* 删除数据
*
* @param id
*/
public void remove(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "delete from note where _id = ?";
Object[] args = {id};
db.execSQL(sql, args);
db.close();
}
/**
* 修改数据
*
* @param note
*/
public void update(Note note) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "update note set title = ?, content = ?, updateDate = ? where _id = ?";
Object[] args = {note.getTitle(), note.getContent(), note.getUpdateDate(), note.getId()};
db.execSQL(sql, args);
db.close();
}
/**
* 按id查询
*
* @param id
* @return
*/
public Note findById(int id) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from note where _id = ?";
Cursor cursor = db.rawQuery(sql, new String[]{String.valueOf(id)});
Note note = null;
if (cursor.moveToNext()) {
note = new Note();
note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
}
cursor.close();
db.close();
return note;
}
/**
* 查询所有
*
* @return
*/
public ArrayList<Note> findAll() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from note";
Cursor cursor = db.rawQuery(sql,null);
ArrayList<Note> notes = new ArrayList<>();
Note note = null;
while (cursor.moveToNext()) {
note = new Note();
note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
notes.add(note);
}
cursor.close();
db.close();
return notes;
}
/**
* 分页查询
*
* @param limit 默认查询的数量
* @param skip 跳过的行数
* @return
*/
public ArrayList<Note> findLimit(int limit, int skip) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from note order by _id desc limit ? offset ?";
String[] strs = new String[]{String.valueOf(limit), String.valueOf(skip)};
Cursor cursor = db.rawQuery(sql,strs);
ArrayList<Note> notes = new ArrayList<>();
Note note = null;
while (cursor.moveToNext()) {
note = new Note();
note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
notes.add(note);
}
cursor.close();
db.close();
return notes;
}
}
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
//数据库名字
private static final String DB_NAME = "note.db";
//本版号
private static final int VERSION = 1;
//创建表
private static final String CREATE_TABLE_NOTE = "CREATE TABLE note(_id integer primary key autoincrement,"+
"title text, content text, createDate text, updateDate text)";
//删除表
private static final String DROP_TABLE_NOTE = "drop table if exists note";
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//SQLiteDatabase 用于操作数据库的工具类
db.execSQL(CREATE_TABLE_NOTE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DROP_TABLE_NOTE);
db.execSQL(CREATE_TABLE_NOTE);
}
}
下面是采用原生的方式进行增删改查
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.recker.note.data.MetaData;
import com.recker.note.data.Note;
import java.util.ArrayList;
public class DatabaseAdapter {
private DatabaseHelper dbHelper;
public DatabaseAdapter(Context context) {
dbHelper = new DatabaseHelper(context);
}
/**
* 添加数据
*
* @param note
*/
public void create(Note note) {
String sql = "insert into note(title, content, createDate, updateDate)values(?,?,?,?)";
Object[] args = {note.getTitle(), note.getContent(), note.getCreateDate(), note.getUpdateDate()};
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL(sql, args);
db.close();
}
/**
* 删除数据
*
* @param id
*/
public void remove(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "delete from note where _id = ?";
Object[] args = {id};
db.execSQL(sql, args);
db.close();
}
/**
* 修改数据
*
* @param note
*/
public void update(Note note) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "update note set title = ?, content = ?, updateDate = ? where _id = ?";
Object[] args = {note.getTitle(), note.getContent(), note.getUpdateDate(), note.getId()};
db.execSQL(sql, args);
db.close();
}
/**
* 按id查询
*
* @param id
* @return
*/
public Note findById(int id) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from note where _id = ?";
Cursor cursor = db.rawQuery(sql, new String[]{String.valueOf(id)});
Note note = null;
if (cursor.moveToNext()) {
note = new Note();
note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
}
cursor.close();
db.close();
return note;
}
/**
* 查询所有
*
* @return
*/
public ArrayList<Note> findAll() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from note";
Cursor cursor = db.rawQuery(sql,null);
ArrayList<Note> notes = new ArrayList<>();
Note note = null;
while (cursor.moveToNext()) {
note = new Note();
note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
notes.add(note);
}
cursor.close();
db.close();
return notes;
}
/**
* 分页查询
*
* @param limit 默认查询的数量
* @param skip 跳过的行数
* @return
*/
public ArrayList<Note> findLimit(int limit, int skip) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from note order by _id desc limit ? offset ?";
String[] strs = new String[]{String.valueOf(limit), String.valueOf(skip)};
Cursor cursor = db.rawQuery(sql,strs);
ArrayList<Note> notes = new ArrayList<>();
Note note = null;
while (cursor.moveToNext()) {
note = new Note();
note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
notes.add(note);
}
cursor.close();
db.close();
return notes;
}
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件