通过API函数来控制SQLite数据库增删改查
person类属性有Intenger id,String name,Intenger age,相应的构造方法和set get方法。
package com.xh.tx.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.xh.tx.bean.Person;
import com.xh.tx.utils.MySQLiteHelper;
public class PersonDao1
{
private static final String TAG = "PersonDao1";
private MySQLiteHelper helper;
public PersonDao1(Context context)
{
helper = new MySQLiteHelper(context, null, null, -1);//前者创建的时候版本已经固定了,后面的-1没作用,与前面的用Eclipse创建数据库文章相结合
}
//增加数据
public void savePerson(Person p)
{
SQLiteDatabase db = helper.getWritableDatabase();
if(db.isOpen())
{
//nullColumnHack 如果数据库里面的name字段设计的时候不允许为空,但是你传递过来的参数是空
// 如果不设置这个nullColumnHack参数那么就会报错
// 如果你设置nullColumnHack这个参数的值为name那么不会报错
ContentValues values = new ContentValues();
values.put("name", p.getName());
values.put("age", p.getAge());
Long id = db.insert("person", null, values);
Log.d(TAG, "================:" + id);
db.close();
}
}
//删除数据
public void deletePerson(Integer id)
{
SQLiteDatabase db = helper.getWritableDatabase();
if(db.isOpen())
{
//select * from person where id=? and name = ?;
String whereClause = "_id=?";
String[] whereArgs = new String[]{String.valueOf(id)};
int _id = db.delete("person", whereClause, whereArgs);
Log.d(TAG, "================:" + _id);
db.close();
}
}
//修改数据
public void updatePerson(Person p)
{
SQLiteDatabase db = helper.getWritableDatabase();
if(db.isOpen())
{
ContentValues values = new ContentValues();
values.put("name", "xintx");
values.put("age", "2");
String whereClause = "_id=?";
String[] whereArgs = new String[]{String.valueOf(p.get_id())};
db.update("peson", values, whereClause, whereArgs);
db.close();
}
}
//查询单个数据
public void queryItem(Integer id)
{
SQLiteDatabase db = helper.getReadableDatabase();
if(db.isOpen())
{
String[] columns = new String[]{"_id","name","age"};
String selection = "_id=?";
String[] selectionArgs = new String[]{String.valueOf(id)};
String groupBy = null; //按什么什么分组
String having = null; //如果select里面包含了组函数的时候,不能用where去查询 就只有用having
String orderBy = null; //按什么排序 order by id desc;
Cursor cursor = db.query("person", columns, selection, selectionArgs, groupBy, having, orderBy);
if(null != cursor && cursor.moveToFirst())
{
Integer _id = cursor.getInt(0);
String name = cursor.getString(1);
Integer age = cursor.getInt(2);
Log.d(TAG, "_id=" + _id + " name=" + name + " age = " + age);
cursor.close()
db.close();
}
}
}
//查询所有数据
public List<Person> queryAll() {
List<Person> list = null;
db = helper.getReadableDatabase();
if (db.isOpen()) {
list = new ArrayList<Person>();
String[] columns = new String[] { "_id", "name", "age" };
String selection = null;
String selectionArgs[] = null;
String groupBy = null;
String having = null;
String orderBy = null;
Cursor cursor = db.query("person", columns, selection, selectionArgs, groupBy, having, orderBy);
while (cursor != null && cursor.moveToNext()) {
Integer _id = cursor.getInt(0);
String name = cursor.getString(1);
Integer age = cursor.getInt(2);
list.add(new Person(_id, name, age));
}
cursor.close();
db.close();
}
return list;
}
}
通过API函数来控制SQLite数据库增删改查的更多相关文章
- 通过Sql语句控制SQLite数据库增删改查
person类属性有Intenger id,String name,Intenger age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...
- (转)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 ...
- 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
在没有使用SQLite这种轻量级的数据库之前,只使用过Sqlserver2008进行数据的增删改查,公司使用的是大型的ORACLE数据库,还没有真正的会使用它.那时候觉得数据库很庞大,然而遇到SQLi ...
- SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...
- Android SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...
- SQLite数据库增删改查
一:SQLite数据库简介: SQLite是一种轻量级的关系型数据库,官网:http://www.sqlite.org/. SQLite数据库文件存在于移动设备的一下目录中:data->data ...
- 转:ios Sqlite数据库增删改查基本操作
研究了几天的数据库,终于把它给搞出来了.Sqlite是ios上最常用的数据库之一,大家还是有必要了解一下的.这是仿照网上的一个例子做的,有些部分写的不好,我稍作了修改,以讲解为主,主要让大家能够明白如 ...
随机推荐
- POJ 2823【单调队列】
题意: 给出序列,找出每个连续长度为k的子序列的最大值和最小值. 思路: 裸单调队列... 单调队列这东西用的真的非常局限,大概只能用到这种情景中== 简单说一下维护: 添加元素,为了保持单调性,排除 ...
- BC-Clarke and five-pointed star(水)
Clarke and five-pointed star Accepts: 237 Submissions: 591 Time Limit: 2000/1000 MS (Java/Others) Me ...
- 在 Angular 中实现搜索关键字高亮
在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...
- 实验比较python中的range和xrange
1 结论: 全用xrange,除非你需要使用返回的列表 2 实验一:性能对比 实验环境:win7 ,64位系统 python2.7 import time StartTime=time.time() ...
- vc 判断哪个按键 被按下 消息 按键 状态
测试Numlock 是否是亮的 环境控制台程序: #include "stdafx.h" #include <stdio.h> #include <conio.h ...
- 如何在低api中使用View的属性设置方法如setAlpha等
ViewPagerTransforms 是一个自定义了各种翻转效果的开源库,其中的各种PageTransformer使用了view的很多属性设置方法如DepthPageTransformer中:? p ...
- jmeter随笔(11)--上传文件接口出错
点击标题下「飞测」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...
- python-appium练习编写脚本时遇到问题
遇到问题: 1.安卓4.2及以下系统无法识别resource-id属性 只能用text属性识别 2.输入中文无法识别 脚本最顶部增加#coding=utf-8 3.对象无法识别resource-id属 ...
- 【caffe-windows】 caffe-master 之Matlab中model的分类应用
此篇讲述在matlab中,如何将训练好的model用于图像分类.将以mnist为例,主要用到caffe-master\matlab\demo 下的classification_demo.m ,可参考我 ...
- freeglut第一步
#include <GL/freeglut.h> static void RenderSceneCB() { glClear(GL_COLOR_BUFFER_BIT); glutSwapB ...