andriod增、删、改、查
将数据库的增删改查单独放进一个包
*/
package com.itheima28.sqlitedemo.dao;
import java.util.ArrayList;
import java.util.List; import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import com.itheima28.sqlitedemo.dao.entities.Person;
import com.itheima28.sqlitedemo.db.PersonSQliteOpenHelper;
public class PersonDao {//谁调用我这个操作的包,就传入自己的对象
private PersonSQliteOpenHelper mOpenHelper; //数据库的帮助类对象 public PersonDao(Context context){ //构造函数
mOpenHelper =new PersonSQliteOpenHelper(context);
}
//插入操作
public void insert(Person person){
//首先连接数据库 这个操作class PersonDao已经做了,用其对象mOpenHelper下的方法
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
//判断数据库是否打开
if(db.isOpen()){ //如果数据库打开,执行添加的操作
//执行添加到数据库的操作 //Object传进来是什么,就是什么,相应前面是什么就写成?
db.execSQL("insert into person(name,age) values(?,?);",new Object[]{person.getName(),person.getAge()});
db.close();//数据库关闭
}
}
//根据id删除数据
public void delete(int id) {
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得可写的数据库对象
if(db.isOpen()){ //如果数据库打开,执行下列操作 //直接传进来id。integer是一个对象类型,int不是。所以不行。
db.execSQL("delete from person where _id=?;",new Integer[]{id});//
db.close();
}
}
//更新
public void updata(int id,String name){
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得可写的数据库对象
if(db.isOpen()){
db.execSQL("updata person set name =? where _id = ?;",new Object[]{name,id});
}
db.close();
}
//查询所有
public List<Person> queryALL(){
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得只读的数据库对象
if(db.isOpen()){
Cursor cursor = db.rawQuery("select * from person;", null); //查询得到“Cursor结果集”
if(cursor !=null && cursor.getCount()>0){//查询集大于0
List<Person> personList = new ArrayList<Person>();//创建一个集合personList
while(cursor.moveToNext()){ //表的游标从上到下移动
int id =cursor.getInt(0);//取第0列---id
String name = cursor.getString(1);//取第1列---name
int age = cursor.getInt(2);//取第2列---age
personList.add(new Person(id,name,age));//将取得的数据装入集合personList
}
db.close();
return personList;//返回这个集合
}
db.close();
}
return null;
}
//查询一个,例如id
public Person queryItem(int id){ //Person类型
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得只读的数据库对象
if(db.isOpen()){ //因为 rawQuery(String, String[])类型所以通过id+""把int id弄成String类型
Cursor cursor= db.rawQuery("select _id,name,age from person where _id=?;",new String[]{id+""} );
if(cursor !=null && cursor.moveToFirst()){//moveToFirst首次找到
int _id = cursor.getInt(0);//得到id
String name= cursor.getString(1);//得到name
int age = cursor.getInt(2);//得到年龄
db.close();
return new Person(_id,name,age);
}
}
return null;
}
}
andriod增、删、改、查的更多相关文章
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...
- Go语言之进阶篇mysql增 删 改 查
一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...
随机推荐
- HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结
HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GE ...
- MySQL扩展功能 - 重复插入
replace into为什么不好?先删除,后插曲,删除时会全表扫描吗? 参考来自MySQL官方网络的文档: http://dev.mysql.com/doc/refman/5.0/en/replac ...
- ASP.NET MVC5--添加验证
1.在Model类里面添加验证,代码如下: public class Movie { public int ID { get; set; } [StringLength(,MinimumLength= ...
- LeetCode - 42. Trapping Rain Water
42. Trapping Rain Water Problem's Link ------------------------------------------------------------- ...
- 【iOS】线程安全的文件读写
前段时间看了一遍GCD(Grand Central Dispatch)多线程,GCD是苹果为多核开发提供的解决方案 多线程最常见的问题就是读写,比如数据库读写,文件读写,读取是共享的,写是互斥,允许多 ...
- 利用name或id属性设置页面跳转的锚点
理论准备 网页中的链接按照链接路径的不同,可以分为3种类型,分别是内部类型.锚点链接和外部链接: 按照使用对象的不同,网页中的链接又分为文本超链接,图像超链接,E-ma ...
- vs2012 编译运行报 项目程序包Dsp.Bds.dll还原失败,找不到版本xxxxxx的程序包问题的解决方法
原先vs2012程序运行项目是可以了,不会出现程序包Dsp.Bds.dll还原失败,找不到版本未2.0.1.0的程序包问题, 但是项目可以正常运行,每次调试看到下面一片红感觉不舒服 原因:可能当时我看 ...
- 找到MVC框架中前端URL与后端同步的解决方案
基本思路: 先用URL标签生成完整的URL字符,前端动态参数的部分以适配符先填充,最后动态参数利用正则匹配进行替换. 这种方式,可以在各种MVC框架中适用,妙. 不废话,上码. var url = & ...
- Genymotion Shell命令
命令行选项 •-h 输出帮助信息 •-r ip_address 连接到特定Genymotion虚拟设备 •-c "command" 在原生shell环境中执行给定命令而后返回 •- ...
- IOS网络编程之请求内容
资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 一个http请求只要由三 ...