安卓数据库工具类

来源:互联网 发布:linux ansi 颜色设置 编辑:程序博客网 时间:2024/06/05 08:51
package com.example.wpj.myapplication.sql;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;
import java.util.List;
/**
 * Created by wpj on 2017/2/27.
 * 
 */
public class DBUtil extends SQLiteOpenHelper {
    private static final String DB_NAME = "TVBank.db";
    private static final int VERSION = 1;
    //SQL
    private static final String Create_Table = "create table login_info \n" +
            "(\n" +
            "   log_id               varchar2(50)                   not null,\n" +
            "   account_name         varchar2(20)                   null,\n" +
            "   account_password     varchar2(20)                   null,\n" +
            "   state                int                            null,\n" +
            "   device_id            varchar2(50)                   null,\n" +
            "   login_time           date                           null,\n" +
            "   constraint PK_LOGIN_INFO primary key (log_id)\n" +
            ");";
    private SQLiteDatabase db;
    public DBUtil(Context context) {
        super(contextDB_NAMEnullVERSION);
    }
    /**
     * 
     * 
     * @param sqLiteDatabase
     * @param oldVersion
     * @param newVersion
     */
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabaseint oldVersionint newVersion) {
        Log.e("onUpgrade""," + oldVersion + "--->" + newVersion);
        //db.execSQL("alter table info add money varchar(20)");
    }
    /**
     * 
     * 
     * @param sqLiteDatabase
     */
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        this.db = sqLiteDatabase;
        sqLiteDatabase.execSQL(Create_Table);
        Log.e("CreateDB""Create " + DB_NAME);
    }
    /**
     * DB
     * 
     * @return
     */
    private SQLiteDatabase getDb() {
        if (db == null)
            db = getWritableDatabase();
        return db;
    }
    /**
     * DB
     */
    public void close() {
        if (db != null)
            db.close();
    }
    /**
     * 
     * 
     * @param table
     * @param values
     * @return
     */
    public long insert(String tableContentValues values) {
        db = getDb();
        return db.insert(tablenullvalues);
    }
    /**
     * 
     * 使
     * @param table
     * @param columns
     * @param values
     * @return
     */
    public boolean insertMulti(String tableString[] columnsList<String[]> values) {
        db = getDb();
        try {
            String columnSql = "";
            String valuesSql = "";
            for (String column : columns) {
                columnSql = columnSql + column + ",";
                valuesSql = valuesSql + "?,";
            }
            StringBuilder sb = new StringBuilder();
            sb.append("insert into ");
            sb.append(table);
            sb.append("(");
            sb.append(columnSql.substring(0columnSql.length() - 1));
            sb.append(") values (");
            sb.append(valuesSql.substring(0valuesSql.length() - 1));
            sb.append(")");
            String sql = sb.toString();
            //---------------------------------------------
            SQLiteStatement stat = db.compileStatement(sql);
            db.beginTransaction();
            for (String[] value : values) {
                for (int i = 0i < value.lengthi++) {
                    stat.bindString(i + 1value[i]);
                }
                long result = stat.executeInsert();
                if (result < 0) {
                    return false;
                }
            }
            //
            db.setTransactionSuccessful();
            //---------------------------------------------
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            db.endTransaction();
        }
        return true;
    }
    /**
     * 
     *
     * @param distinct
     * @param table
     * @param columns
     * @param selection-selectwhere
     * @param selectionArgs-selection
     * @param groupBy
     * @param having
     * @param orderBy
     * @param limit-
     * @return
     */
    public Cursor query(boolean distinctString tableString[] columnsString selectionString[] selectionArgsString groupByString havingString orderByString limit) {
        db = getDb();
        return db.query(distincttablecolumnsselectionselectionArgsgroupByhavingorderBylimit);
    }
    /**
     * 
     *
     * @param sql
     * @param args
     * @return
     */
    public Cursor query(String sqlString[] args) {
        db = getDb();
        return db.rawQuery(sqlargs);
    }
    /**
     * 
     *
     * @param table
     * @param values
     * @param whereClause
     * @param whereArgs
     * @return
     */
    public int update(String tableContentValues valuesString whereClauseString[] whereArgs) {
        db = getDb();
        return db.update(tablevalueswhereClausewhereArgs);
    }
    /**
     * 
     *
     * @param table
     * @param whereClause
     * @param whereArgs
     * @return
     */
    public int delete(String tableString whereClauseString[] whereArgs) {
        db = getDb();
        return db.delete(tablewhereClausewhereArgs);
    }
    /**
     * sql
     *
     * @param sql
     */
    public void excSQL(String sql) {
        db = getDb();
        db.execSQL(sql);
    }
    /**
     * sql
     *
     * @param sql
     * @param bindArgs
     */
    public void excSQL(String sqlObject[] bindArgs) {
        db = getDb();
        db.execSQL(sqlbindArgs);
    }
}
原创粉丝点击