• 结对项目——数据库


    创建数据库表

    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;
    	}
    }
    
  • 相关阅读:
    相关系数的元分析,以及带调节变量的相关系数的元分析(R)
    共有地址网段类别的划分,几个特殊的私有地址,关于子网掩码,网关的小知识 (网络)
    在文件内夹内部建立子文件夹(python)(os)
    晶振, 机器周期,进位 (单片机)
    数码管动态显示,显示从1到9,每一位显示一个数字 (单片机)
    比较R平方的差值,比较两个回归方程的(R)
    react项目控制台报错data.slice.is not function
    useRef源码
    useReducer源码实现
    useContext源码解读
  • 原文地址:https://www.cnblogs.com/lw0607/p/6992065.html
Copyright © 2020-2023  润新知