结对项目——数据库

创建数据库表

public class DataBaseHelper extends SQLiteOpenHelper {
	
	private static final String DATABASE_NAME = "MyBook.db";
	
	private static final int VERSION = 1;

	public DataBaseHelper(Context context) {
		super(context, DATABASE_NAME, null, VERSION);
	}

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

	@Override
	public void onCreate(SQLiteDatabase db) {
		StringBuilder sb = new StringBuilder();
		sb.append("create table " + TABLE_NAME);
		sb.append("(");
		sb.append(BookColumn._ID + " integer primary key autoincrement,");
		sb.append(NAME + " text,");
		sb.append(PASSWORD + " text,");
		sb.append(FILE_PATH + " text,");
		sb.append(LAST_READ_TIME + " integer,");
		sb.append(BEGIN + " integer,");
		sb.append(PROGRESS + " text");
		sb.append(")");
		db.execSQL(sb.toString());
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("drop table " + TABLE_NAME);
	}

}

数据库工具类实现增删改查功能

public class BookManager {
	private static final String TAG = "MyBook";
	private DataBaseHelper dataBaseHelper;

	public BookManager(Context context) {
		dataBaseHelper = new DataBaseHelper(context);
	}


	public Long save(Book book) {
		SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
		ContentValues values = bookToContentValues(book);
		Long count = sqLiteDatabase.insert(TABLE_NAME, null, values);
		sqLiteDatabase.close();
		return count;
	}

	public long update(Book book) {
		SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();

		ContentValues values = bookToContentValues(book);
		long count = sqLiteDatabase.update(TABLE_NAME, values, BookColumn._ID + "=?", new String[] { book.getId().toString() });
		sqLiteDatabase.close();
		return count;
	}

	public long delete(Long id) {
		SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
		long count = sqLiteDatabase.delete(TABLE_NAME, BookColumn._ID + "=?", new String[] { id.toString() });
		sqLiteDatabase.close();
		return count;
	}


	public Book get(Long id) {
		Book book = null;
		SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
		Cursor cursor = sqLiteDatabase.query(TABLE_NAME, new String[] { BookColumn._ID, NAME, PASSWORD, FILE_PATH, LAST_READ_TIME, BEGIN, PROGRESS }, BookColumn._ID + "=?",
				new String[] { id.toString() }, null, null, null);
		if (cursor.moveToFirst()) {
			book = cursorToBook(cursor);
			cursor.close();
		}
		sqLiteDatabase.close();
		return book;
	}


	public ArrayList<Book> getAll() {
		ArrayList<Book> books = new ArrayList<Book>();
		SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
		Cursor cursor = sqLiteDatabase.query(TABLE_NAME, new String[] { BookColumn._ID, NAME, PASSWORD, FILE_PATH, LAST_READ_TIME, BEGIN, PROGRESS }, null, null, null, null,
				LAST_READ_TIME + " desc");
		while (cursor.moveToNext()) {
			Book book = cursorToBook(cursor);
			books.add(book);
		}
		cursor.close();
		sqLiteDatabase.close();
		return books;
	}

	
	
	private Book cursorToBook(Cursor cursor) {
		Long id = cursor.getLong(cursor.getColumnIndex(BookColumn._ID));
		String name = cursor.getString(cursor.getColumnIndex(NAME));
		String password = cursor.getString(cursor.getColumnIndex(PASSWORD));
		String filePath = cursor.getString(cursor.getColumnIndex(FILE_PATH));
		Date lastReadTime = new Date(cursor.getLong(cursor.getColumnIndex(LAST_READ_TIME)));
		int begin = cursor.getInt(cursor.getColumnIndex(BEGIN));
		String progress = cursor.getString(cursor.getColumnIndex(PROGRESS));
		Book book = new Book(name, filePath, lastReadTime, begin, progress);
		book.setId(id);
		book.setPassword(password);
		return book;
	}
}
posted @ 2017-06-14 19:28  夜深人静时  阅读(150)  评论(0)    收藏  举报