当前位置:操作系统 > 安卓/Android >>

Android实战开发---数据库操作类

在我们的框架中,有一个文件叫做DBTool.java,很明显,是我们用来处理数据库的类。在Android的开发中,我们操作的数据库是SQLite这个小型的数据库,一个小小的手机,当然是装不下MSSQL或者MySQL之类的大家伙,同时,较高的资源消耗也是移动开发中必需要注意的问题,所以一个小巧好用的数据库也就成为了我们的好伙伴!

 

 

 

先汇报一下目前项目的进展,已经做了几天的Model开发,也就是请求接口获取数据。现在大部分的已经写完了,主要是iphone外包公司的效果图还未提交过来,所以我们也只能先进行最底层的开发。等开Tools包中的东西都发上来以后,我们再来研究Model层以及XML的解析。

 

 

 

我们还是先看看完整的代码,然后一一描述。

 

 

 

 

 

 

package hb.hbwb.tools; 

 

import hb.hbwb.finals.DBFinals; 

import android.content.ContentValues; 

import android.content.Context; 

import android.database.Cursor; 

import android.database.SQLException; 

import android.database.sqlite.*; 

 

/**

 * @name 数据库相关操作类

 * @author zhang.yue

 * @create_date 20110512

 * @last_edit_author zhang.yue

 * @last_edit_date 20111115

 * @remark

 * @edit_remark 优化代码

 */ 

public class DBTool { 

    private Context mCtx = null; 

    private DatabaseHelper dbHelper = null; 

    private SQLiteDatabase db = null;    

    /**

     * 构造函数   1

     * @param ctx context对象

     */ 

    public DBTool(Context ctx){ 

        this.mCtx = ctx; 

    } 

     

    /**

     * 打开数据连接

     * @return

     * @throws SQLException

     */ 

    public DBTool open() throws SQLException{ 

        dbHelper = new DatabaseHelper(mCtx); 

        db = dbHelper.getWritableDatabase();    //如果数据库不存在就建立一个,反之存在则根据版本更新

        return this; 

    } 

     

    /**

     * 关闭数据连接

     */ 

    public void close(){ 

        dbHelper.close(); 

    } 

     

    /**

     * 列表查询用  1

     * @param tableName 表名

     * @param strCols 列名

     * @param strWhere 条件

     * @param strGroupby 分组

     * @param strOrderby 排序

     * @return 数据指针

     */ 

    public Cursor getAll(String tableName,String[] strCols,String strWhere,String strGroupby,String strOrderby){ 

        return db.query(tableName,  //表名

                strCols,       //列

                strWhere,          //where语句

                null,          //where语句的参数

                strGroupby,          //GROUP by语句

                null,          //HAVING语句

                strOrderby           //order by语句

                ); 

    } 

 

    /**

     * 列表查询用  2

     * @param sql 传入sql语句直接查询

     * @return 数据指针

     */ 

    public Cursor getAll(String sql){ 

        return db.rawQuery(sql, null); 

    } 

     

    /**

     * 单个数据查询  1

     * @param rowId 数据id

     * @param tableName 表名

     * @param key 关键字

     * @param strCols 列名

     * @param strWhere 条件

     * @param strGroupby 分组

     * @param strOrderby 排序

     * @return 单个数据指针

     */ 

    public Cursor get(long rowId,String tableName,String key,String[] strCols,String strWhere,String strGroupby,String strOrderby){ 

        Cursor mCursor = db.query(  

                tableName, 

                strCols, 

                key+"="+rowId, 

                null,strGroupby,null,strOrderby); 

         

        //如果指针存在,就把指针移到第一个条目上

        if(mCursor!=null) 

            mCursor.moveToFirst(); 

         

         

        return mCursor; 

    } 

     

    /**

     * 单个数据查询  2

     * @param sql 传入sql语句直接查询

     * @return 单个数据指针

     */ 

    public Cursor get(String sql){ 

        Cursor mCursor =db.rawQuery(sql, null); 

        //如果指

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,