实现对sqlite数据库增删改查
package com.example.db.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.db.PersonSQLiteOpenHelper;
import com.example.db.domain.Person;
public class PersonDao {
//获取dbhelper实例
private PersonSQLiteOpenHelper helper;
// 在构造方法里面完成 helper的初始化
public PersonDao(Context context)
{
helper = new PersonSQLiteOpenHelper(context);
}
/**
* 添加一条记录 ,拿到数据库的第一时间需要把数据库关闭掉
* @param name 姓名
* @param number 电话
*/
public void add(String name,String number){
SQLiteDatabase db = helper.getWritableDatabase();
String sql ="这里是添加的sql语句 values(?,?) ";
//bindArgs 则是一个数组 放添加的值
Object[] bindArgs ={name,number};
db.execSQL(sql, bindArgs);
db.close();
}
/**
* 通过调用系统api 添加一条记录 ,拿到数据库的第一时间需要把数据库关闭掉
* @param name 姓名
* @param number 电话
*/
public long adds(String name,String number){
SQLiteDatabase db = helper.getWritableDatabase();
/**
* table 表名
* nullColumnHack 是否允许数据为空
* values ConteatValues map 集合
*/
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
long id = db.insert("sys_user", null, values);
db.close();
return id;
}
/**
* 根据用户名查找信息。查询用getReadableDatabase() 通过 rawQuery()去查询 返回 Cursor 游标
* @param name 姓名
* @return true 存在 false 不存在
*/
public boolean find(String name){
SQLiteDatabase db = helper.getReadableDatabase();
String sql ="这里是查询的sql语句 name=? ";
//bindArgs 则是一个数组 放添加的值
String[] selectionArgs ={name};
Cursor cursor = db.rawQuery(sql, selectionArgs);
// cursor.moveToNext() 让结果集移动下一行如果移动成功 说明return true,不成功就return false
boolean result = cursor.moveToNext();
//游标也需要释放
cursor.close();
db.close();
return result;
}
/**
* 修改一条记录
* @param name 用户名
* @param newnumber 用户手机号码
*/
public void update (String name,String newnumber)
{
SQLiteDatabase db = helper.getWritableDatabase();
String sql ="这里是修改的sql语句 set number=? where name=? ";
//bindArgs 则是一个数组 放添加的值
Object[] bindArgs ={name,newnumber};
db.execSQL(sql, bindArgs);
db.close();
}
/**
* 通过系统api修改一条记录
* @param name 用户名
* @param newnumber 用户手机号码
*/
public int updates (String name,String newnumber)
{
SQLiteDatabase db = helper.getWritableDatabase();
/**
* table 表名
* values ContentValues map 集合
* whereClause 选择条件
* whereArgs 站位符
*/
ContentValues values = new ContentValues();
values.put("newnumber", newnumber);
//返回的值大于零 语句执行成功
int num = db.update("sys_user", values, "name =?", new String[] {name}) ;
db.close();
return num;
}
/**
* 删除一条语句
* @param name 用户名
*/
public void delete (String name){
SQLiteDatabase db = helper.getWritableDatabase();
String sql ="这里是删除的sql语句 name=? ";
//bindArgs 则是一个数组 放添加的值
Object[] bindArgs ={name};
db.execSQL(sql, bindArgs);
db.close();
}
/**
* 通过系统api删除一条语句
* @param name 用户名
*/
public int delets (String name){
SQLiteDatabase db = helper.getWritableDatabase();
/**
* table 表名
* whereClause 条件
* whereArgs 占位符
*/
//返回的值大于零 语句执行成功
int num = db.delete("sys_user", "name = ?", new String[]{name});
db.close();
return num;
}
/**
* 返回全部数据信息
* @return
*/
public List<Person> findAll()
{
SQLiteDatabase db = helper.getReadableDatabase();
List<Person> persons = new ArrayList<Person>();
String sql ="查询全部 select * from sys_user";
//如果没有参数可以写null
String[] selectionArgs ={null};
Cursor cursor = db.rawQuery(sql, selectionArgs);
while(cursor.moveToNext()){
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number =cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id,name,number);
persons.add(p);
}
cursor.close();
db.close();
return persons;
}
/**
* 通过系统api返回全部数据信息
* @return
*/
public List<Person> findAlls(){
SQLiteDatabase db = helper.getReadableDatabase();
List<Person> persons = new ArrayList<Person>();
/**
* table 表名
* columns 返回具体列名
* selection 选择条件
* selectionArgs 选择参数
* groupBy, having, orderBy 有就写 没有写null
*
*/
Cursor cursor = db.query("sys_user", new String[]{"id","name","number"}, null, null, null, null, null);
while(cursor.moveToNext()){
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number =cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id,name,number);
persons.add(p);
}
cursor.close();
db.close();
return persons;
}
}
实现对sqlite数据库增删改查的更多相关文章
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- IOS sqlite数据库增删改查
1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h ...
- Android 利用xUtils框架实现对sqllite的增删改查
首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils 把下载好的文件压缩,把里面的jar包拷进项目中如图所示: 这里新建一个User类进行测试增删改查 ...
- 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
在没有使用SQLite这种轻量级的数据库之前,只使用过Sqlserver2008进行数据的增删改查,公司使用的是大型的ORACLE数据库,还没有真正的会使用它.那时候觉得数据库很庞大,然而遇到SQLi ...
- web项目总结——通过jsp+servlet实现对oracle的增删改查功能
1.DAO模式 分包:依次建立 entity:实体包,放的是跟oracle数据库中表结构相对应的对象的属性,也就是这个对象有什么 dao:增删改查接口,实现增删改查的具体方法 service:同dao ...
- Android SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...
- SQLite数据库增删改查
一:SQLite数据库简介: SQLite是一种轻量级的关系型数据库,官网:http://www.sqlite.org/. SQLite数据库文件存在于移动设备的一下目录中:data->data ...
- SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...
随机推荐
- idea调节字体大小
这是调节前的 这是调节后的 步骤
- DelayQueue与ProirityBlockingQueue
DelayQueue是一个无界队列,只有在延迟期满的时候,才可以取出元素.该队列的头部存储的延期期满了后保存时间最长的元素. DelayQueue阻塞队列在我们系统开发中也常常会用到,例如:缓存系统的 ...
- 移动端给img元素添加content: "";
误给img原始添加 content: "";属性后发现在ios系统中图片是不会显示的android系统是正常的
- libnetwork 源码浅析
[编者的话]从docker 1.6开始关注docker网络这块,从原来的铁板一块,到后来的libnetwork拆分,到现在的remote driver,docker 一直在改进.功能缺失,实用性不足, ...
- 入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 创建简单的OAuth2.0服务器,客户端和API(三)
本教程的目的在于创造尽可能简单的identityserver安装作为一个oauth2授权服务器.这应该能够让你了解一些基本功能和配置选项(完整的源代码可以发现在这里).在后面的文档中会介绍更多的高级功 ...
- Linux系列—策略路由、ip rule、ip route
早期在管理Linux系统的网络时,常使用ifconfig及route之类的命令,不过如果你准备开始使用Linux强大的基于策略的路由机制,那么,就请不要使用这类工具了,因为这类工具根本无法用于功能强大 ...
- 通过使用scrapy爬取某学校全网
通过遍历全网url 实现爬取全网内容 忽略“.doc"等文件网页暂不处理,只爬取整个页面,不做清洗 spider.py # -*- coding: utf-8 -*- import scra ...
- sql如何分组选择显示最新的一条数据
怎样在数据库的一个表里筛选出每一人的时间最新的一条记录?用SQL语句 wenchuan408 wenchuan408 结帖率:100% sql数据库 yhh name ...
- PostgreSQL窗口函数(转)
转自:http://time-track.cn/postgresql-window-function.html PostgreSQL提供了窗口函数的特性.窗口函数也是计算一些行集合(多个行组成的集合, ...
- AngularJs 中的transclude的理解
Transclude是一个配置, 为了告诉AngularJs去获取当前指令模版内部的所有内容(实际使用ng-transclude), 更多关于怎么创建一个包含其他元素的指令: documentatio ...