码迷,mamicode.com
首页 > 移动开发 > 详细

Android-SQLite商业化数据库操作

时间:2015-06-24 19:00:21      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:数据库操作   android   

Android-SQLite商业化数据库操作
具体的数据操作

/**
* 插入用户实例
* @param pUser
* @return
*/
public long insertUser(User pUser)
{
if (mSqLiteDatabase != null && pUser != null)
{
//插入一条记录
ContentValues _contentValues = new ContentValues();
_contentValues.put(COLUMN_USERNAME, pUser.getmUserName());
_contentValues.put(COLUMN_USER_ADDRESS, pUser.getmUserAddress());

         return mSqLiteDatabase.insert(TABLE_NAME, null, _contentValues);


    }
    else
    {
        return -1;
    }
}


/**
* 删除用户实例
* @param id
* @return
*/
public int deleteUser(int id)
{
if (mSqLiteDatabase != null && id > 0)
{
return mSqLiteDatabase.delete(TABLE_NAME, “_id=?”, new String[]{String.valueOf(id)});

    }
    return -1;  
}


/**
* 更新用户的实例
* @param pUser
* @param id
* @return
*/
public int updataUser(User pUser, int id)
{
if (mSqLiteDatabase != null && pUser != null)
{
ContentValues _contenValues = new ContentValues();
_contenValues.put(COLUMN_USERNAME, pUser.getmUserName());
_contenValues.put(COLUMN_USER_ADDRESS, pUser.getmUserAddress());

        return mSqLiteDatabase.update(TABLE_NAME, _contenValues,"_id=?" , new String[]{String.valueOf(id)});

    } 
    return -1;
}


/**
* 查询所有记录
*/
public Cursor selectAll()
{
if (mSqLiteDatabase != null)
{
return mSqLiteDatabase.query(
TABLE_NAME,
new String[]{“_id”, COLUMN_USERNAME, COLUMN_USER_ADDRESS},
null,
null,
null,
null,
null);
}
return null;

}

/**
* 根据条件查询用户数据
* @param selection
* @param selectionArgs
* @param groupBy
* @param having
* @param orderBy
* @return
*/
public Cursor selectUser(String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
{
if (mSqLiteDatabase != null)
{
return mSqLiteDatabase.query(
TABLE_NAME,
new String[]{“_id”, COLUMN_USERNAME, COLUMN_USER_ADDRESS},
selection,
selectionArgs,
groupBy,
having,
orderBy);
}
else
{
return null;
}
}

批量更新和删除
使用原生的数据库语句
exeSQL
rawSQL
queryWithFactory效率比较高

二 sqlite3数据库引擎
下载sqliter3的源代码,分析文件结构,再进行源码分析
结果是在android2.3.3\external\sqlite\dist文件夹下,所有的拓展的第三方类库都在external文件夹下,
系统统一编译

三 sqlite3连接方式
JDBC的方式
像jni的原生类库,底层还是靠C/C++实现
在android2.3.3\libcore\sqlite-jdbc\src\main\native和java文件夹下,

四 表的主外键关系
商业项目要求严谨的主外键关系
使用的工具是SQLiteStudio
技术分享

五 表的视图
但SQL语句不太熟悉的时候可以使用表的视图

六 导出数据库
将数据库导出,放到项目的exeSQL执行的代码处

七 事务
类似于原子提交的概念,即事务是一个整体的过程
尽量放到try-catch中
beginTransaction()
中间是业务逻辑,事务操作
endTransaction()
commit()

八 面试题
1 说说Android数据存储的几种形式
SharePreference,文件,网络,SQLite3数据库

2 sqlite能支持存储过程吗, 支持主外键关联吗
支持主外键关联

3 如何让自己的setting程序与系统的setting程序融合
在自己的setting程序的xml文件里面的PreferenceScreen标签下应用系统的intent


Android-SQLite商业化数据库操作

标签:数据库操作   android   

原文地址:http://blog.csdn.net/qq_22075977/article/details/46624225

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!