android 数据库SQLite用法

//继承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");
}


}

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值