1.Android 系统中集成的轻量级的数据库
2.特点:
轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中
3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
4.路径: data/data/应用程序包名/database/ ****.db
5.存放的类型:
NULL 空值
INTEGER 整型(不用int)
VARCHAR 可变长度的字符数据
TEXT 文本字符串
BOOLEAN 布尔
DATE
Time
SQLiteOpenHelper 数据库的帮助类, “用于数据库的创建和版本更新”
定义一个类, 继承SQLiteOpenHelper
重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,工厂(null),数据库的版本号
重写父类的方法:
onCreate():第一次创建数据库时调用, 只会执行一次 – “初始化表,初始化数据”
onUpgrade()
SQLiteDatabase 数据库的操作类, “操作数据库: 执行sql语句/增/删/改/查”
获取SQLiteDatabase对象
执行sql 语句 execSQL()
insert() 插入数据
update() 修改数据
delete() 删除数据
query() 查询数据
// An highlighted block
ublic class MyOpenHelper extends SQLiteOpenHelper {
public MyOpenHelper(Context context) {
//创建数据库
super(context, "student1702C", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表 只会调用一次
db.execSQL("CREATE TABLE student(_id integer PRIMARY KEY AUTOINCREMENT ,NAME VARCHAR(20),sex VARCHAR(20),brith INT,department VARCHAR(20),address VARCHAR(20))");
//创建表
db.execSQL("CREATE TABLE score(_id integer PRIMARY KEY AUTOINCREMENT,stu_id INT ,c_name VARCHAR(20),grade INT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
public class MainActivity extends AppCompatActivity {
ListView listView;
SQLiteDatabase dp;
ArrayList<Student> arrayList=new ArrayList<>();
Mybasert mybasert;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=findViewById(R.id.lv);
MyOpenHelper helper = new MyOpenHelper(this);
dp = helper.getWritableDatabase();
mybasert = new Mybasert(MainActivity.this, arrayList);
listView.setAdapter(mybasert);
}
public void insert(View view) {
dp.execSQL("INSERT INTO student VALUES(901,'张老大','男',1985,'计算机系','北京市海淀区'),(NULL,'张老二','男',1986,'中文系','北京市昌平区'),(NULL,'张三','女',1990,'中文系','湖南省永州区'),(NULL,'李四','男',1990,'英语系','辽宁省阜阳市'),(NULL,'王五','女',1991,'英语系系','福建省厦门市'),(NULL,'王六','男',1988,'计算机系','湖南省衡阳市')");
dp.execSQL("INSERT INTO score VALUES(1,901,'计算机',98),(NULL,901,'英语',80),(NULL,902,'计算机',65),(NULL,902,'中文',88),(NULL,903,'中文',95),(NULL,904,'计算机',70),(NULL,904,'英语',92),(NULL,905,'英语',94),(NULL,906,'计算机',90),(NULL,906,'英语',85)");
Log.i("###", "我调用了这个方法");
}
public void update(View view) {
dp.execSQL("UPDATE student SET NAME='隔壁老王' WHERE NAME=?",new String[]{"王五"});
}
public void delete(View view) {
dp.execSQL("DELETE FROM student WHERE NAME='张老大'");
}
public void select(View view) {
// Cursor student = dp.query("student", null, null, null, null, null, null);
Cursor student = dp.query("student",null,null,null,null,null,null,"2,4");
while(student.moveToNext()){
String name = student.getString(student.getColumnIndex("NAME"));
Student student1 = new Student(name);
arrayList.add(student1);
mybasert.notifyDataSetChanged();
}
}
}