Sqltie数据库
SQLite数据库介绍
1.Android 系统中集成的轻量级的数据库
2.特点:
轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中
3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
4.路径: data/data/应用程序包名/database/ ****.db
5.存放的类型:
NULL 空值
INTEGER 整型(不用int)
VARCHAR 可变长度的字符数据
TEXT 文本字符串
BOOLEAN 布尔
DATE
SQL语句复习
1.创建表:
create table student(_id integer primary key autoincrement,name varchar(30),age integer,address varchar(30));
2.添加数据:
insert into student values(null,‘冯’,17,‘北京市海淀区’);
3.修改数据:
update student set age=18,address=‘河北省北京市’ where name=‘sgf’
4 查询数据:
select * from student where 字段 = ‘值’
模糊查询: select * from 表名 where name like ‘%小%’
select * from student order by age desc 降序查询
sum(列名) 求和
max(列名) 最大值
min(列名) 最小值
avg(列名) 求平均值
count(列名) 统计记录数
5.删除数据:
delete from student where id=1;
数据库使用及两个核心类
一, SQLiteOpenHelper
数据库的帮助类, “用于数据库的创建和版本更新”
使用方式:
(1)定义一个类, 继承SQLiteOpenHelper
(2)重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号
(3)重写父类的两个方法:
onCreate(): onUpgrade()
package com.example.myday0229;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqlHelper extends SQLiteOpenHelper {
/*
第一个:上下文
第二个:数据库名
第三个:创建数据库的工厂对象
第四个:数据版本号
*/
public MySqlHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//该方法只被执行一次,创建表用的
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table student(id integer primary key autoincrement,name varchar(20))");
db.execSQL("insert into student(id,name)values(null,'小明')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Activity代码
package com.example.myday0229;
import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button queryId;
private MySqlHelper mySqlHelper;
SQLiteDatabase readableDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
queryId = (Button) findViewById(R.id.query_id);
//创建数据库对象
mySqlHelper = new MySqlHelper(this, "user.db", null, 1);
//Readable可读可写 区别就是磁盘满了以后,读没有问题,写会报错
readableDatabase = mySqlHelper.getReadableDatabase();
queryId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String sql = "select * from student";
Cursor cursor = readableDatabase.rawQuery(sql, new String[]{});
if (cursor != null) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(MainActivity.this, "" + name, Toast.LENGTH_SHORT).show();
}
}
//关闭游标
cursor.close();
}
});
}
}
增删改查
package com.example.myday03022;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqLiiteHelper extends SQLiteOpenHelper {
public MySqLiiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table student(id integer primary key autoincrement,name varchar(20))");
db.execSQL("insert into student(id,name)values(null,'张三')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
查询
queryId = (Button) findViewById(R.id.query_id);
MySqLiiteHelper mySqLiiteHelper = new MySqLiiteHelper(this, "stu.db", null, 1);
readableDatabase = mySqLiiteHelper.getReadableDatabase();
//查询
queryId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = "select * from student";
Cursor cursor = readableDatabase.rawQuery(str, new String[]{});
// 判断数据是否为空
if (cursor != null) {
//移动游标
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(MainActivity.this, "" + name, Toast.LENGTH_SHORT).show();
}
}
//关闭游标
cursor.close();
}
});
添加
//添加
insetId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//系统方法
ContentValues contentValues = new ContentValues();
contentValues.put("name", "赵六");
readableDatabase.insert("student", null, contentValues);
Toast.makeText(MainActivity.this, "已添加", Toast.LENGTH_SHORT).show();
}
});
删除
// 删除
deleteId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = "delete from student where id=?";
readableDatabase.delete("student", "id=?", new String[]{"1"});
Toast.makeText(MainActivity.this, "已删除", Toast.LENGTH_SHORT).show();
}
});
更改
// 更改
updateId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = "update set student set name='赵六' where id=2";
ContentValues contentValues = new ContentValues();
contentValues.put("name", "李四");
readableDatabase.update("student", contentValues, "id=?", new String[]{"2"});
Toast.makeText(MainActivity.this, "已更改", Toast.LENGTH_SHORT).show();
}
});
}