SQL Android

SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少。

一般有以下几个关键步骤:

1.创建数据库

2.创建表

3.操作:增删改查

4.关闭数据库

5.删除表(非必选)

SQLiteOpenHelper是SQLiteDatabse的一个帮助类,用来管理数据的创建和版本更新。一般的用法是定义一个类继承SQLiteOpenHelper,并实现两个回调方法,OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabse, int oldVersion, int newVersion)来创建和更新数据库。

 

下面新建类MyDatabaseHelper继承自SQLiteOpenHelper,并创建了表people

public class MyDatabaseHelper extends SQLiteOpenHelper {

public static final String CREATE_PEOPLE = "create table people ("+"id integer primary key autoincrement,"+"name text,"+"age int,"+"price double)";


public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}


@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//创建表
sqLiteDatabase.execSQL(CREATE_PEOPLE);
}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

//删除旧表重新创建
sqLiteDatabase.execSQL("drop table if exists people");
onCreate(sqLiteDatabase);
}
}

 

下面采用了两种方式来展示增删改查

第一种:纯SQL语句

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";
private MyDatabaseHelper myDatabaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//增加version 来删除之前的表信息
myDatabaseHelper = new MyDatabaseHelper(this,"peopleInfo.db",null,9);
//创建数据库
myDatabaseHelper.getWritableDatabase();

//打开数据库
SQLiteDatabase database = myDatabaseHelper.getWritableDatabase();
//新增zhangsan 18 11.11
// ContentValues values = new ContentValues();
// values.put("name","zhangsan");
// values.put("age",18);
// values.put("price",11.11);
// database.insert("people",null,values);

database.execSQL("insert into people (name,age,price) values(?,?,?)",new String[] {"zhangsan","18","11.11"});

//新增lisi 28 22.22
// values.clear();
// values.put("name","lisi");
// values.put("age",28);
// values.put("price",22.22);
// database.insert("people",null,values);

database.execSQL("insert into people (name,age,price) values(?,?,?)",new String[] {"lisi","28","22.22"});


//新增wangwu 48 44.44
// values.clear();
// values.put("name","wangwu");
// values.put("age",48);
// values.put("price",44.44);
// database.insert("people",null,values);

database.execSQL("insert into people (name,age,price) values(?,?,?)",new String[] {"wangwu","48","44.44"});


//删除zhangsan信息
// database.delete("people","name = ?",new String[] {"zhangsan"});

database.execSQL("delete from people where name = ?",new String[] {"zhangsan"});

//更改lisi age=38
// values.clear();
// values.put("age",38);
// database.update("people",values,"name = ?",new String[] {"lisi"});

database.execSQL("update people set age = ? where name = ? ",new String[] {"38","lisi"});


//查询people表的内容并打印
// Cursor cursor = database.query("people",null,null,null,null,null,null,null);
Cursor cursor = database.rawQuery("select * from people",null);
if (cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
double price = cursor.getDouble(cursor.getColumnIndex("price"));

Log.d(TAG, "onCreate: "+name+" "+age+" "+price);

}while (cursor.moveToNext());

}
cursor.close();


}
}

 

第二种:Android对象方式


public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";
private MyDatabaseHelper myDatabaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//增加version 来删除之前的表信息
myDatabaseHelper = new MyDatabaseHelper(this,"peopleInfo.db",null,9);
//创建数据库
myDatabaseHelper.getWritableDatabase();

//打开数据库
SQLiteDatabase database = myDatabaseHelper.getWritableDatabase();
//新增zhangsan 18 11.11
ContentValues values = new ContentValues();
values.put("name","zhangsan");
values.put("age",18);
values.put("price",11.11);
database.insert("people",null,values);

// database.execSQL("insert into people (name,age,price) values(?,?,?)",new String[] {"zhangsan","18","11.11"});

//新增lisi 28 22.22
values.clear();
values.put("name","lisi");
values.put("age",28);
values.put("price",22.22);
database.insert("people",null,values);

// database.execSQL("insert into people (name,age,price) values(?,?,?)",new String[] {"lisi","28","22.22"});


//新增wangwu 48 44.44
values.clear();
values.put("name","wangwu");
values.put("age",48);
values.put("price",44.44);
database.insert("people",null,values);

// database.execSQL("insert into people (name,age,price) values(?,?,?)",new String[] {"wangwu","48","44.44"});


//删除zhangsan信息
database.delete("people","name = ?",new String[] {"zhangsan"});

// database.execSQL("delete from people where name = ?",new String[] {"zhangsan"});

//更改lisi age=38
values.clear();
values.put("age",38);
database.update("people",values,"name = ?",new String[] {"lisi"});

// database.execSQL("update people set age = ? where name = ? ",new String[] {"38","lisi"});


//查询people表的内容并打印
Cursor cursor = database.query("people",null,null,null,null,null,null,null);
// Cursor cursor = database.rawQuery("select * from people",null);
if (cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
double price = cursor.getDouble(cursor.getColumnIndex("price"));

Log.d(TAG, "onCreate: "+name+" "+age+" "+price);

}while (cursor.moveToNext());

}
cursor.close();


}
}

 

 

最终结果

 

05-28 10:00:11.618 16802-16802/? D/MainActivity: onCreate: lisi 38 22.22
05-28 10:00:11.618 16802-16802/? D/MainActivity: onCreate: wangwu 48 44.44

转载于:https://www.cnblogs.com/huangzs/p/9098768.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android连接SQL主要通过SQLite数据库来实现。SQLite是Android内置的一款轻量级关系型数据库引擎,可以在Android设备上进行本地数据库的创建、管理和操作。 在Android应用中,我们可以使用AndroidSQLiteOpenHelper类来实现与SQLite数据库的连接。该类提供了一系列方法用于创建、升级和打开数据库。我们可以继承SQLiteOpenHelper类,并重写onCreate()和onUpgrade()方法来分别处理数据库的创建和升级操作。 在连接SQLite数据库之前,我们首先需要获取SQLiteOpenHelper的实例。可以通过传入数据库名、版本号和一个可选的数据库操作监听器来实例化SQLiteOpenHelper对象。在获取实例之后,我们可以通过调用getWritableDatabase()或getReadableDatabase()方法来获取可写或只读的数据库对象。 连接成功后,我们可以通过SQLiteDatabase对象执行各种数据库操作,例如创建表、插入数据、更新数据、查询数据等。可以使用execSQL()方法执行自定义的SQL语句,也可以使用insert()、update()、delete()等方法执行常见的数据库操作。通过使用Cursor对象可以获取查询结果集,并通过moveToFirst()、moveToNext()等方法遍历结果集的各个记录。 连接完成后,我们应该在适当的时候关闭数据库连接,释放资源,以免造成资源浪费。可以通过调用close()方法来关闭数据库连接。 总之,Android连接SQL主要通过SQLiteOpenHelper类和SQLiteDatabase类来实现。SQLiteOpenHelper用于创建、升级和打开数据库,而SQLiteDatabase则用于执行数据库操作。通过适时地连接和关闭数据库,我们可以方便地进行数据库管理和数据操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值