SQLite数据库浅谈

1.编写类继承SQLitHelper;

public class SQLiteHelper extends SQLiteOpenHelper {
}

 

2.实现其构造函数;

    public SQLiteHelper(Context context){
        this(context, TABLE_NAME, null, DB_VERSION);
    }
    
    public SQLiteHelper(Context context, String name, CursorFactory factory,
            int version) {
        super(context, TABLE_NAME, factory, DB_VERSION);
    
    }

3.定义数据库的名称、表名、版本以及表的所有列明

    private static final String DB_NAME = "playerdatas";//数据库名称
    private static final String TABLE_NAME = "datas";//表名
    private static final int DB_VERSION = 1;//数据库版本
    //表的列名
    private static final String TABLE_ID = "_ID"; 
    private static final String TABLE_VIDEOID = "videoId";
    private static final String TABLE_URL = "url";
    private static final String TABLE_TITLE = "title";
    private static final String TABLE_CONTENT = "content";
    private static final String TABLE_ACTORS = "actors";
    private static final String TABLE_DIRECTOR = "director";
    private static final String TABLE_TYPE = "type";
    private static final String TABLE_ICON = "icon";

4.实现onCreate方法,编写SQL语句,创建表

    @Override
    public void onCreate(SQLiteDatabase db) {
        this.db = db;
        StringBuilder builder = new StringBuilder();

        builder.append("create table if not exists ");
        builder.append(TABLE_NAME);
        builder.append("(");
        builder.append(TABLE_ID).append(" Integer primary key autoincrement, ");
        builder.append(TABLE_VIDEOID).append(" Integer, ");
        builder.append(TABLE_ICON).append(" Integer, ");
        builder.append(TABLE_URL).append(" varchar(50), ");
        builder.append(TABLE_TITLE).append(" varchar(30), ");
        builder.append(TABLE_CONTENT).append(" varchar(50) ");
        builder.append(" ) ");
        
        db.execSQL(builder.toString());
    }

5 实现onUpgrade方法,当版本升级时调用

    /**
     * 版本更新
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(" DROP TABLE IF EXISTS " + TABLE_NAME );
        onCreate(db);

    }

6.编写查询、删除、更新等操作方法。

/**
     * 查询所有数据
     * @return
     */
    public Cursor query(){
        SQLiteDatabase db = getReadableDatabase();
        //获取Corsor
        Cursor c = db.query(TABLE_NAME, null, null, null, null, null, null);
        return c;
        
    }
    /**
     * 根据id查找数据
     * @param id
     * @return
     */
    public Cursor queryById(int videoId){
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.query(TABLE_NAME, new String[]{TABLE_VIDEOID}, "videoId=?", 
                new String[]{String.valueOf(videoId)}, null, null, null);
        return c;
    }
    
    /**
     * 根据唯一标识_ID  来删除数据  
     * @param id
     */
    public void delete(int id){
        SQLiteDatabase db = getWritableDatabase();
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>"+db);
        db.delete(TABLE_NAME, "_ID=?", new String[]{String.valueOf(id)});

    }
    /**
     * 插入方法
     * @param values插入值
     */
    public void insert(ContentValues values){
        SQLiteDatabase db = getWritableDatabase();
        db.insert(TABLE_NAME, null, values);
        db.close();
    }

7.关闭数据库的方法

    /**
     * 关闭数据库
     */
    public void close(){
        if(db != null){
            db.close();
        }
    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。