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; ...
随机推荐
- SQL 批量字符串替换
--在SQL SERVER中批量替换字符串的方法 update table[表名] set Fields[字段名]=replace(Fields[字段名],'被替换原内容','要替换成的内容') up ...
- Jquery 前端模版
<div id="div_demo"></div><script id="demo" type="text/x-jque ...
- mbps
Mbps=Mbit/s即兆比特每秒.Million bits per second的缩写 传输速率是指设备的的数据交换能力,也叫“带宽”,单位是Mbps(兆位/秒),目前主流的集线器带宽主要有10Mb ...
- [PHP] 自动加载的实现
基于psr的规范,使用命名空间和spl_autoload_register()来实现自动加载 文件结构: |--Api |--Account.php |--User.php|--Service |-- ...
- 给我一个及时的问候——XMPP
XMPP总的来说就是:基于XML数据结构,点对点的,及时通讯协议 是 Linux操作系统+Apache软件+mySql数据库 + php 编程语言 组成 开始时要导入 XMPPFrameWork框 ...
- __proto__
proto 以前要访问原型, 必须使用构造函数来实现. 无法直接使用实例对象来访问原型. 火狐最早引入属性 __proto__ 表示使用实例对象引用原型. 但是早期是非标准的. 通过该属性可以允许使用 ...
- [原创]html5游戏_五线谱打音符
html5手机游戏—五线谱打音符 1.[用五线谱打唱名] 2.[用唱名打五线谱] 3.[无限练习模式] 用来熟悉五线谱上音符的位置 代码不难,这回注释还是有认真写的[只是废代码没有全部删除...] 效 ...
- ArcEngine中License权限等级更改的问题
曾经认为自己对于ArcGIS 开发许可问题比较理解了,并小结在<ArcEngine10.x开发的许可问题>中. 01.权限问题 今天在调用GP时失败(插值式开发,使用的是他人框架),因为需 ...
- java中判断字符串是否为数字的方法
一: //1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); ...
- 公司outing选项
Sign up: 2014 Summer Outing 请您从以下三个方案中选择您最感兴趣的一个项目, 如果您不能参加此次summer outing, 请选择"遗憾放弃"- ...