Android-SQLite商业化数据库操作

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

时间: 2024-08-06 07:00:20

Android-SQLite商业化数据库操作的相关文章

android中的数据库操作(转)

android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同学来说,把SQL92标准中的一些基本概念.基本语句快速的了解一下,是很有必要的,这样待会用Android的da

android中的数据库操作【转】

http://blog.csdn.net/nieweilin/article/details/5919013 android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同

QT SQLite 多数据库操作大全

QT SQLite 多数据库操作大全 一.单数据库模型 一般QT都是把打开一个缺省数据库连接,操作一个数据库连接,但是对Sqlite中频率修改容易加锁,因此有一种设计模式是把频率修改的表放在不同的数据库文件中,但这样要修改代码操作数据库部分 通常打开代码 http://developer.nokia.com/community/wiki/Creating_an_SQLite_database_in_Qt bool DatabaseManager::openDB() { // Find QSLit

Android中的数据库操作

============问题描述============ 在服务器端想遍历sql的查询结果,但找到Cursor用法的教程都是纯sql代码.Cursor可以直接在java代码里写吗?像Android中SQLlite里的Cursor用法那样. ============解决方案1============ 有Cursor类

android中清空一个表---类似truncate table 表名 这样的功能 android sqlite 清空数据库的某个表

public void clearFeedTable(){ String sql = "DELETE FROM " + FEED_TABLE_NAME +";"; SQLiteDatabase db = dbHelper.getSQLiteDatabase(); db.execSQL(sql); revertSeq(); dbHelper.free(); } private void revertSeq() { String sql = "update s

[Android] SQLite数据库之增删改查基础操作

    在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Unix等主流操作系统,同一时候可以跟非常多程序语言如C#.PHP.Java等相结合.以下先回想SQL的基本语句,再讲述Android的基本操作. 一. adb shell回想SQL语句     首先,我感觉自己整个大学印象最深的几门课就包含<数据库>,所以想先回想SQL增删改查的基本语句.而在And

android菜鸟学习笔记20----Android数据存储(四))Android数据库操作

Android内置了一个名为SQLite的关系型数据库,这是一款轻量型的数据库,操作十分简便.SQLite与别的数据库不同的是,它没有数据类型.可以保存任何类型的数据到你所想要保存的任何表的任何列中.但它又支持常见的类型比如: NULL, VARCHAR, TEXT, INTEGER, BLOB, CLOB...等. 唯一的例外是:integer primary key 此字段只能存储64位整数. 在JAVA项目中,要使用JDBC操作数据库需要加载数据库驱动,连接数据库等操作.Android简化

Android SQLite性能分析

作为Android预置的数据库模块,对SQLite的深入理解是很有必要的,能够从中找到一些优化的方向. 这里对SQLite的性能和内存进行了一些測试分析.对照了不同操作的运行性能和内存占用的情况,粗略地列在这里算是作个小结. 1. 基本架构 先了解一下SQLite主要架构 (详见<The Definitive Guide to SQLite>), 须要关注的是Compiler和Backend两个模块.正由于有一个虚拟机的存在.所以才有了Compiled Statement的价值,由于它能够降低

SQLLite数据库操作

DBOpenHelper.java package com.example.sqllite.servise; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; /** *