Android之Sqlite数据库
数据库访问完毕后,游标必须也记得关闭
import com.huangzhong.love_power_model.UserInfoDto;
import java.util.ArrayList;
import java.util.List;
import android.app.AlertDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log; public class UserInfoDao{ private static final int MODE_PRIVATE = 0x0;
private static final String DATABASE = "lovepower";
private static SQLiteDatabase db; public static void insert(Context context,UserInfoDto model) {
//Id,UserName,Birthday,PhoneNumber,QQ,Address,CreateDate
Cursor cursor;
int count = ;
try {
db = context.openOrCreateDatabase(DATABASE, MODE_PRIVATE, null);
//db.execSQL("drop table UserInfo ;");
String sqlCheckExsit = "select count(*) as c from Sqlite_master where type ='table' and name ='UserInfo' ";
cursor = db.rawQuery(sqlCheckExsit, null); if(cursor.moveToNext()){
count = cursor.getInt();
if(count <= ){
db.execSQL("Create table UserInfo (Id text not null,UserName text,Birthday text,PhoneNumber text,QQ text,Address text,CreateDate text);");
Log.e("insertSql", "");
}
}
String insertSql = "insert into UserInfo (Id,UserName,Birthday,PhoneNumber,QQ,Address,CreateDate) " +
"values('" + model.getId() + "', '"
+ model.getUserName()+"','"
+ model.getBirthday()+"','"
+ model.getPhoneNumber()+"','"
+ model.getQQ()+"','"
+ model.getAddress()+"','"
+ model.getCreateDate() + "');";
db.execSQL(insertSql);
cursor.close();
Log.e("insertSql", "ok");
}
finally { db.close();
}
} /**
* 查询
* @param context 上下文
* @param sql SQl查询语句
* @param fields 字段名集合
* @return 查询结果集 List<String>类型
*/
public static List<UserInfoDto> query(Context context, String sql) {
Log.e("UserInfoDto", "取数据");
List<UserInfoDto> dataList = new ArrayList<UserInfoDto>();
Cursor cursor;//Id,UserName,Birthday,PhoneNumber,QQ,Address,CreateDate
try {
db = context.openOrCreateDatabase(DATABASE, MODE_PRIVATE, null);
cursor = db.rawQuery(sql, null);
if (cursor != null) {
while (cursor.moveToNext()) {
UserInfoDto model =new UserInfoDto();
model.setId(cursor.getString(cursor.getColumnIndex("Id")));
model.setUserName(cursor.getString(cursor.getColumnIndex("UserName")));
model.setBirthday(cursor.getString(cursor.getColumnIndex("Birthday")));
model.setPhoneNumber(cursor.getString(cursor.getColumnIndex("PhoneNumber")));
model.setQQ(cursor.getString(cursor.getColumnIndex("QQ")));
model.setAddress(cursor.getString(cursor.getColumnIndex("Address")));
model.setCreateDate(cursor.getString(cursor.getColumnIndex("CreateDate")));
dataList.add(model);
}
cursor.close();//游标必须关闭
}
}catch(Exception e) {
new AlertDialog.Builder(context).setIcon(android.R.drawable.ic_dialog_alert).setTitle("数据库连接错误:")
.setMessage("数据访问异常。").show();
} finally {
db.close();
}
return dataList;
} /**
* 数据记录总条数
* @param context 上下文
* @param sql SQL查询语句
* @return 记录条数
*/
public static int getCount(Context context, String sql) { int totalCounty = ;
try {
db = context.openOrCreateDatabase(DATABASE, MODE_PRIVATE, null);
Cursor cursor = db.rawQuery(sql, null);
cursor.moveToFirst();
totalCounty = cursor.getInt();
cursor.close();//游标必须关闭
} catch (Exception e) {
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("数据库连接错误:").setMessage("数据访问异常。").show();
} finally {
db.close();
}
return totalCounty;
}
}
数据访问层
public class UserInfoDto {
//Id,UserName,Birthday,PhoneNumber,QQ,Address,CreateDate
private String Id;
private String UserName;
private String Birthday;
private String PhoneNumber;
private String QQ;
private String Address;
private String CreateDate;
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getBirthday() {
return Birthday;
}
public void setBirthday(String birthday) {
Birthday = birthday;
}
public String getPhoneNumber() {
return PhoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
PhoneNumber = phoneNumber;
}
public String getQQ() {
return QQ;
}
public void setQQ(String qQ) {
QQ = qQ;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}
public String getCreateDate() {
return CreateDate;
}
public void setCreateDate(String createDate) {
CreateDate = createDate;
}
}
实体层
Android之Sqlite数据库的更多相关文章
- Qt for Android 打包 SQLite 数据库
Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面 ...
- Android实现SQLite数据库联系人列表
Android实现SQLite数据库联系人列表 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个通讯录查看程序: 要求使用SQLite ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- android中sqlite数据库的基本使用和添加多张表
看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大 ...
- android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
android 一个SQLite数据库多个数据表(带demo) 前言 demo演示 一.搭建 二.建立实体类 三.建立数据库操作类 ...
- Android之SQLite数据库篇
一.SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大. 二.SQLite的特点 1.轻量级使用 SQLit ...
- Android之SQLite数据库使用
转载整理于:http://my.csdn.net/lmj623565791 我刚开始接触Android的时候甚至都不敢相信,Android系统竟然是内置了数据库的!好吧,是我太孤陋寡闻了.由于我之前是 ...
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
- Android中SQLite数据库小计
2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
随机推荐
- Tensorflow检验GPU是否安装成功 及 使用GPU训练注意事项
1. 已经安装cuda但是tensorflow仍然使用cpu加速的问题 电脑上同时安装了GPU和CPU版本的TensorFlow,本来想用下面代码测试一下GPU程序,但无奈老是没有调用GPU. imp ...
- python使用cx_Oracle在Linux和Windows下的一点差异
1. 主要是线程方面的差异. Windows下,把cx_Oracle.connect(connectedId)得到的handle传给定时器线程,主线程和和定时器可以用同一个handle. 但Linux ...
- iOS UI进阶-4.0 地图与定位
在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院 在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能 ...
- 从零开始一起学习SLAM | 你好,点云
本文提纲 先热热身点云是啥你知道点云优缺点吗?点云库PCL:开发者的福音PCL安装指北炒鸡简单的PCL实践留个作业再走先热热身 小白:hi,师兄,好久不见师兄:师妹好,上周单应矩阵作业做了吗?小白:嗯 ...
- jQuery UI 中Tabs Ajax载入时出现Http 304的问题
最近发现jQueryUI中tabs的ajax载入,总是会出现304未修改的情况,明明数据有变化的么~应该返回200才对. 于是尝试在beforeLoad中设置: ui.ajaxSettings.cac ...
- Selenium基础知识(四)表单切换
在测试过程中,经常会碰到frame和iframe,嵌套等情况 这种情况下直接通过id,name等等是无法定位到的 好在selenium替我们想到了这个问题switch_to方法解决问题 switch_ ...
- 记录一则expdp任务异常处理案例
环境:AIX 6.1 + Oracle 10.2.0.4 现象:在XTTS迁移测试阶段,遇到执行几个expdp的导出任务,迟迟没有返回任何信息,对应日志无任何输出,查看任务状态: SQL> se ...
- <3>lua字符串
1.字符串 <1>字符串相连/加法 .. local str = "abc" str = str .. 7 --字符串与数字相连 print(str) --abc7 ...
- 《大话设计模式》c++实现 之策略模式
一.UML图 二.概念 策略模式:他定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. 三.优点 (1)策略模式是一种定义一系列算法的方法,从 ...
- MOG插件(葡萄牙语,略作翻译)
这次记录下MOG大神的插件,自从我发现了这个插件,似乎开启了一个新世界诶~~~ 网址 https://atelierrgss.wordpress.com 1. MOG_YuruYuri.js CARA ...