Android 常用数据操作封装类案例
1、DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作
package com.example.utils; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; /**
* Created by Administrator on 2017/12/18.
*/ public class DbHelper extends SQLiteOpenHelper { //声明数据库的名称
private static final String DATABASE_NAME="content.db";
//声明版本号
private static final int VERSION=1;
//重写构造方法
private DbHelper(Context context) {
super(context, DATABASE_NAME,null, VERSION);
}
private DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, DATABASE_NAME,null, VERSION);
} //创建数据库的方法
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String sql="create table if not exists tb_stu(" +
"_id integer primary key," +
"sname text," +
"sage integer," +
"ssex text" +
")";
sqLiteDatabase.execSQL(sql);
sql="insert into tb_stu(sname,sage,ssex) values('Jack',23,'男')";
sqLiteDatabase.execSQL(sql);
sql="insert into tb_stu(sname,sage,ssex) values('Lucy',22,'女')";
sqLiteDatabase.execSQL(sql);
} //当数据库发生版本更新的方法
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
String sql="drop table tb_stu";
sqLiteDatabase.execSQL(sql);
onCreate(sqLiteDatabase);
} //单例模式
private static DbHelper dbHelper; public static synchronized DbHelper getInstance(Context context){
if(dbHelper==null)
dbHelper=new DbHelper(context);
return dbHelper;
}
}
2、使用单例模式,对DbHelper进行封装(一般在实现数据操作时,调用此类中的方法,而不是DbHelper类中的)
package com.example.utils; import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; /**
* Created by Administrator on 2017/12/18.
*/ public class DbUtils { //声明SQLite数据库
SQLiteDatabase sdb;
//创建构造方法并实例化SQLiteDatabase对象
public DbUtils(Context context){
sdb=DbHelper.getInstance(context).getReadableDatabase();
} //调用SQLiteDatabase对象的 添加 方法进行数据添加,返回值为添加数据行的ID
public long insert(String tableName, ContentValues values){
long id=sdb.insert(tableName,null,values);
return id;
} //调用SQLiteDatabase对象的 修改 方法进行数据添加,返回值为修改数据行的ID
public int update(String tableName,ContentValues values,String where,String[] whereArgs){
int i=sdb.update(tableName,values,where,whereArgs);
return i;
} //调用SQLiteDatabase对象的 删除 方法进行数据添加,返回值为删除行
public int delete(String tableName,String where,String[] whereArgs){
int i=sdb.delete(tableName,where,whereArgs);
return i;
} //调用SQLiteDatabase对象的 查询 方法进行数据添加,返回值为游标
public Cursor query(String tableName,String[] columns,String selection,String[] selectArgs,String groupBy,String having,String orderBy,String limit){
Cursor cursor=sdb.query(tableName,columns,selection,selectArgs,groupBy,having,orderBy,limit);
return cursor;
}
}
Android 常用数据操作封装类案例的更多相关文章
- Android 常用数据适配器SimpleAdapter
在<Android 常用数据适配器ArrayAdapter>中介绍了ArrayAdapter数据适配器.但是存在一个缺陷,那就是条目的图标都固定相同,要显示每个条目的图标都不相同,那么使用 ...
- SNMP常用数据操作
SNMP常用数据操作 snmp编程中常见的数据类型基本上就是integer32/oct_str(字节数组)/counter64/timeticks/dateAndTime这些.很多其它的比如Truth ...
- Android 常用数据适配器ArrayAdapter
接着上篇文章<Android 采用Layout Inflater创建一个View对象>,本文采用常用数据适配器ArrayAdapter 新建项目后,在layout文件夹下新建list_it ...
- mybatis 2 -常用数据操作
1.写入数据并获取自增ID XML配置: <!-- 写入数据获取自增ID --> <insert id="insertLog" parameterType=&qu ...
- MySql常用数据操作
1.数据库操作: MySQL服务管理命令: 1.启动服务:sudo service mysql start 2.停止服务:sudo service mysql stop 3.重新启动服务:sudo s ...
- Delphi ADO数据操作封装类
[delphi] view plaincopyprint? { 将数据集操作方面的东西全部封装成一个单独的类 TcustomAdoDataSet是TadoQuery.TadoTable.TadoDat ...
- Android常用数据类型转换
String转int.float.double.byte[].bitmap Int i = Integer.parseInt(str); Float f = Float.parseFloat(str) ...
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...
- Android清除本地数据缓存代码案例
Android清除本地数据缓存代码案例 直接上代码: /* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除shar ...
随机推荐
- JVM指令集
指令集,其实就是一系列指令的集合.例如我们需要给一个局部变量赋予1这个值,即这个动作:int a = 1; 在我们看来,这很简单,但对于机器来说需要很多个动作.所以Java虚拟机指令集就是将这些常用的 ...
- 微信小程序wx.request接口
微信小程序wx.request接口 wx.request是小程序客户端与服务器端交互的接口 HTTPS 请求 一个微信小程序,只能同时(同时不能大于5个)有5个网络请求 wx.request(OBJE ...
- spring cloud config配置记录
1. spring cloud config配置记录 1.1. pom <!-- 分布式配置中心 --> <dependency> <groupId>org.spr ...
- Spring 通知和顾问进行增强
使用顾问增加前置增强和后置增强 <bean id="1" class="目标对象"></bean> <bean id=" ...
- VS解决-无法打开文件“opencv_ts300d.lib”问题
之前使用过opencv,但不想要时没有正确去卸载,终造成历史问题,每次新建工程编译时都会弹出错误,然后停止运行,解决方法较笨笨 成功打印
- python(leetcode)-66加一问题
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入 ...
- [P4886] 快递员
考虑在树上选个点rt作为根,并且快递中心就选这儿.计算出所有配送的代价(2*两段之和),设他们的最大值为Max.若此时存在下列情况时,可以判定Max已经为最优解. 1)存在代价为Max的配送(u,v) ...
- python之找最后一个人
题目大概是:有10个人围成一圈,从第一个人数,数到3的人出局,问最后一个人是谁? 围成一圈,那就是无限循环,直至最后一个人,我们可以把10个人看做一个列表,每循环一次就把除3为0的数去除,下次再次循环 ...
- State状态模式
1.简介 在日常开发中,某些对象的状态如果发生改变,对应的行为也将发生改变,那么如何在运行时根据对象的状态动态的改变对象的行为,同时不产生紧耦合关系(即使用if else或者swith所带来的紧耦合关 ...
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
众说周知,ArcSDE空间数据库引擎提供了两种连接数据库的方式.一是服务连接方式,一是直连方式.后者也是Esri所推崇的方式.但是,在客户的生产环境和开发商的开发环境中这两种方式都是有需求的.下面就以 ...