关闭

android 数据库SQLite用法

标签: android数据库sqlite
164人阅读 评论(0) 收藏 举报
分类:
//继承SQLiteOpenHelper函数
package com.example.SQLite111111;

import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

public class MyOpenHelper extends SQLiteOpenHelper {

/*
 * context 上下文
 * name    数据库的名字
 * factory  游标
 * version  数据库版本
 * 
 * */
public MyOpenHelper(Context context) {
//创建数据库
super(context, "itheima.db", null, 102);
// TODO Auto-generated constructor stub
}

/*
 * 当数据库第一次创建时候调用
 * 那么这个方法特别适合做表结构初始化 创建表就是写sql语句
 * 
 * */
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
//创建表
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))");
System.out.print("111111");

}

//当数据库版本升级调用
//这个方法 表结构的更新
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
System.out.println("呀或右霏霏地地在");
db.execSQL("alter table info add phone varchar(20)");

}
}





//四个铵钮来做增删改查操作
package com.example.SQLite111111;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
   //成员变量
MyOpenHelper myOpenHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getFilesDir();
//实例化MyOpenHelper类   上下文getApplicationContext()
myOpenHelper = new MyOpenHelper(getApplicationContext());
//打开或创建 数据库    如果是第一次就是创建
// SQLiteDatabase sqLieDatabase = myOpenHelper.getWritableDatabase();
     //打开或创建 数据库    如果是第一次就是创建     如果磁盘满了就只读
 //SQLiteDatabase sqLieDatabase2 = myOpenHelper.getReadableDatabase();
System.out.println("呀或右111111霏霏地地在");
}

// button按钮事件
public void clixk1(View v){
//获取数据库对像
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行增加一条sql语句
//db.execSQL("insert into info(name,phone) values('王五','13577777777')");
//db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"张三","1591854456456"});
/*
 * looge api函数操作增
 * table 表名
 * nullColumnHack  内部封装了一个map key:对应例名
 * values 
 * */
ContentValues values =  new ContentValues();
values.put("name", "王五");
values.put("phone", "110");
//返回值代表插入新行的id
long insert = db.insert("infp", null, values);
if(insert >0){
Toast.makeText(getApplicationContext(), "添加成功", 1).show();
}else{
Toast.makeText(getApplicationContext(), "添加失败", 1).show();
}
// 用完关闭数据库
db.close();
System.out.println("呀或右11111");
}

//删
public void clixk2(View v){
//获取数据库对像
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行增加一条sql语句
//db.execSQL("delete from info where name=?",new Object[]{"张三"});
//返回值代表影响的行数
int delete = db.delete("info", "name=?", new String[]{"王五"});
Toast.makeText(getApplicationContext(), "删除"+delete+"行", 0).show();
// 用完关闭数据库
db.close();
System.out.println("呀或右222222");

}

//改
public void clixk3(View v){
//获取数据库对像
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行增加一条sql语句
//db.execSQL("update info set phone=? where name=?",new Object[]{"13888888888","张三"});
ContentValues values = new ContentValues();
values.put("phone", "114");
// 更新了多少行
int update = db.update("info", values, "name=?",new String []{"王五"});
Toast.makeText(getApplicationContext(), "更新"+update+"行", 0).show();
// 用完关闭数据库
db.close();
System.out.println("呀或右3333");
}

//查
public void clixk4(View v){
//获取数据库对像
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行增加一条sql语句
//Cursor cursor =  db.rawQuery("select * from info",null);
//columns 代表你要查询的列  null是查询所有的
/*selection 根据什么查询phone 
 * selectionArgs
 * */
Cursor cursor = db.query("info",new String[]{"naem","phone"}, "name=?",
new String[]{"王五"},null, null, null);
 //cursor.getCount 返回的行数
if(cursor != null && cursor.getCount()>0){
//行数往下移
while(cursor.moveToNext()){
//代表例的索引
//String name = cursor.getString(1);
String phone = cursor.getString(0);
System.out.println("name"+phone+"--"+"phone");
}
}
// 用完关闭数据库
db.close();
System.out.println("呀或右444444");
}


}

 
 

1
0
查看评论

Android学习笔记----SQLite数据库基本用法

数据库 Android 为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper 帮助类,借助这个类就可以非常简单地对数据库进行创建和升级 SQLiteOpenHelper 具有的方法
  • a946898963
  • a946898963
  • 2016-03-03 19:27
  • 819

Android自带SQLite数据库查询语句query的用法

金证职考 2017-02-26 19:39 今天在调试APP的时候,用到了SQLite的query 查询语句,去年编码时间紧没认真琢磨query的用法,当时用到query时为了省事省时直接用下面的: Cursor cursor = db.query(tableName,null,null,nul...
  • u011277123
  • u011277123
  • 2017-04-07 16:24
  • 1921

android小功能实现之SQLite数据库的基本操作

 创建一个Android工程 一 新建数据库 1 新建一个类DBOpenHelper 内容如下: import android.content.Context; import android.database.sqlite.SQLiteDatabase; import androi...
  • xufeng0991
  • xufeng0991
  • 2015-03-05 01:56
  • 1423

Android sqlite例子 有外键的使用

Introduction Android default Database engine is Lite. SQLite is a lightweight transactional database engine that occupies a small amount of disk stor...
  • spmno
  • spmno
  • 2011-10-22 13:23
  • 5047

android简单实例-----------------使用SQLiteOpenHelper以及SQLiteDatabase

SQLiteOpenHelper的使用,SQLiteDatabase的使用,操作Cursor对象简单讲解。getWritableDatabase()和getWritableDatabase()放发的讲解和区别。android数据库增删改查。好了,既然涉及到源码,我们在最后再来从源码角度来解析一下ge...
  • sinat_31311947
  • sinat_31311947
  • 2016-02-20 17:54
  • 2760

Android开发框架xUtils3.x新手教学(一)SQLite数据库访问神器dBUtils

废话不说,想把大象装冰箱,总共分几步? 零、假设一个需求 设计一个App,保存学生以及他们的考试成绩。学号是学生们的唯一身份标示,成绩分为数学 语文 英语 三类 要求: 1,添加 删除 查询学生 2,添加 删除 修改 查询学生成绩 一,设计一个DbHelper类 内部复杂,接口简单——这是我个人非常...
  • xujiayin
  • xujiayin
  • 2016-06-16 14:47
  • 1652

Android SQLite数据库的详细使用

SQLite 简介SQLite 是一款内置到移动设备上的轻量型的数据库,是遵守ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统,多用于嵌入式系统中SQLite 数据库是无类型的,可以向一个integer 的列中添加一个字符串,但它又支持常见的类型比如:NULL,VARCHAR, TE...
  • axi295309066
  • axi295309066
  • 2016-09-27 00:44
  • 1039

Android Sqlite 数据库版本更新

Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承自SqliteOpenHelper 2.会实现SqliteOpenHelper的两个方法 ...
  • long704480904
  • long704480904
  • 2014-11-20 23:17
  • 22174

【android】SQLite数据库的创建和操作、SQLite数据库可视化

SQLite数据库的创建和操作和数据库可视化
  • chentravelling
  • chentravelling
  • 2015-12-17 20:35
  • 3105

android之存储篇_SQLite数据库_让你彻底学会SQLite的使用

SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。 例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。  但有一种情况例外:定义为INTEGER PRIMARY...
  • jason0539
  • jason0539
  • 2013-08-24 07:51
  • 180112
    个人资料
    • 访问:1051次
    • 积分:79
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档