本博文是对上一篇使用sql语句进行增删改查的修改,上一篇地址:
https://blog.csdn.net/liyunfu233/article/details/84193577
本篇主界面代码:
package com.example.createsqlitedemo02;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
MyOpenHelper myOpenHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myOpenHelper=new MyOpenHelper(getApplicationContext());
//打开或者创建数据库 如果是第一次就是创建
//SQLiteDatabase sqLiteDatabase=myOpenHelper.getWritableDatabase();
//打开或创建数据库 如果是第一次就是创建 如果磁盘满了只返回一个可读的
SQLiteDatabase sqLiteDatabase=myOpenHelper.getReadableDatabase();
}
//点击按钮增加一条记录
public void click1(View view) {
//[1]获取数据库对象
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
//[2]执行增加一条的sql语句
//db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"张三","138888"});
/**
* table 表名
* contentvalues 内部封装了一个map key:对应列的名字 value对应的值
*
*/
ContentValues values=new ContentValues();
values.put("name","王五");
values.put("phone","110");
//返回值代表插入新行的id
long insert=db.insert("info",null,values);
//[3]数据库用完需要关闭
db.close();
if (insert>0){
Toast.makeText(getApplicationContext(),"添加成功",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getApplicationContext(),"添加失败",Toast.LENGTH_SHORT).show();
}
}
//删除
public void click2(View view) {
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
//db.execSQL("delete from info where name=?",new Object[]{"张三"});
//返回值代表影响的行数
int delete=db.delete("info","name=?",new String[]{"王五"});
db.close();
Toast.makeText(getApplicationContext(),"删除了"+delete+"行",Toast.LENGTH_SHORT).show();
}
//更新
public void click3(View view) {
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
//db.execSQL("update info set phone=? where name=?",new Object[]{"139999"});
ContentValues values=new ContentValues();
values.put("phone","145");
int update=db.update("info",values,"name=?",new String[]{"王五"});
db.close();
Toast.makeText(getApplicationContext(),"更新了"+update+"行",Toast.LENGTH_SHORT).show();
}
//查找
public void click4(View view) {
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
//colums 代表你要查询的列
Cursor cursor=db.query("info",new String[]{"phone"},"name=?",new String[]{"王五"},null,null,null);
//Cursor cursor=db.rawQuery("select * from info",null);
if (cursor!=null&&cursor.getCount()>0){
while (cursor.moveToNext()){
//columindex代表列的索引
String phone=cursor.getString(0);
System.out.println("phone"+phone);
}
}
}
}
下面是纯使用sql语句进行的增删改查
package com.example.a15114.createsqlitedemo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
MyOpenHelper myOpenHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myOpenHelper=new MyOpenHelper(getApplicationContext());
//打开或者创建数据库 如果是第一次就是创建
//SQLiteDatabase sqLiteDatabase=myOpenHelper.getWritableDatabase();
//打开或创建数据库 如果是第一次就是创建 如果磁盘满了只返回一个可读的
SQLiteDatabase sqLiteDatabase=myOpenHelper.getReadableDatabase();
}
//点击按钮增加一条记录
public void click1(View view) {
//[1]获取数据库对象
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
//[2]执行增加一条的sql语句
db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"张三","138888"});
//[3]数据库用完需要关闭
db.close();
}
//删除
public void click2(View view) {
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
db.execSQL("delete from info where name=?",new Object[]{"张三"});
db.close();
}
//更新
public void click3(View view) {
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
db.execSQL("update info set phone=? where name=?",new Object[]{"139999"});
db.close();
}
//查找
public void click4(View view) {
SQLiteDatabase db=myOpenHelper.getReadableDatabase();
Cursor cursor=db.rawQuery("select * from info",null);
if (cursor!=null&&cursor.getCount()>0){
while (cursor.moveToNext()){
//columindex代表列的索引
String name=cursor.getString(1);
String phone=cursor.getString(2);
System.out.println("name:"+name+"---------"+phone);
}
}
}
}
可以看出在对一个数据库进行操作时谷歌api更好用,他封装了 insert 添加方法 delete删除方法
update更新方法 以及 query 查询方法
但是对多个数据库进行操作时 纯sql语句 更好使用,他可以随意修改sql语句。