//继承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");
}
}
|
android 数据库SQLite用法
最新推荐文章于 2024-09-19 20:16:28 发布