岐小白开课啦~ 跟着岐小白,以后不用刮大白^_^ SQL----数据库 package com.example.user.android2lesson_day4_database; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { /* * 数据库--数据的仓库 * 数据持久化:本质上是将内存的数据写入到文件中,下次运行的时候可以直接读取,从而达到数据的长时间存储 * 数据库就是一套软件,实现了对数据的存储,是通过一些指令(SQL语句)的方式来进行的,现在主流的数据库是关系型数据库 * 可以简单的理解为表格。 * * 数据库按处理的数据量大小分三类: * 1.大型数据库 Oracle DB2 * 2.中型数据库 SQLServer * 3.小型数据库 MYSQL NOSQL * 手机端数据库 SQLite * * 几个关键字 * 表--》表格 * 字段:相当于列 * 数据:相当于就是行 * 外键:与其它表之间的关系 * 主键:唯一且不为空的序列 * 非空:不能为空 * * 有序:按顺序排列 * 自增:自动增长的序列 * * * SQL语句简介 * * 数据库永远离不开四个操作: 增! 删! 改! 查!CRUD * create 创建表格 * create table student( name text,sex text,age integer); * insert 添加数据 * insert into student(name,sex,age)values('张三','男',21); * insert into student(name,age)values('张三',21); * INSERT INTO student VALUES('张三','男',21); * delete 删除数据 * delate from student where id =3; * delate from student where name ='张三'; * delate from student where 1=1; * * update 修改数据 * update student set name ="李四" where id =3; * * select查询数据 * select*from student where name="张三"; * select name ,sex,age from student where name="张三"; * sqlite是一种无数据类型的数据库 * 五种亲缘数据类型 * 1.Integer 所有整形数据 * 2.Varchar 包含字符串的文本 * 3.NONE 二进制 * 4.REAL 浮点型 * 5.NUMERIC 其它的类型 * 每个SOL语句以;号结束 * * * * * * * * * * */ private Button createTable; private Button insertData; private Button deleteData; private Button updateData; private Button selectData; // 数据库对象,代码中所有的和数据库进行的交互都是通过这个对象来进行的 private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); createTable= (Button) findViewById(R.id.createButton); insertData= (Button) findViewById(R.id.inserButtton); deleteData= (Button) findViewById(R.id.deleButton); updateData= (Button) findViewById(R.id.updateButton); selectData= (Button) findViewById(R.id.selectButton); // 数据库的使用 // 使用之前需要创建数据库对象 // 参数1:数据存储的文件位置 // 参数2:文件创建工厂类,这里不需要,写为空 db =SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.user.android2lesson_day4_database/database2 .db",null); // 添加响应事件 // 创建表 createTable.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 这里进行创建表操作 // 1.拼接sql语句 String sql="CREATE TABLE IF NOT EXISTS student (sid INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT,sex TEXT, age INTEGER);"; // 2.向数据库对象发送sql指令 db.execSQL(sql); Toast.makeText(getApplicationContext(),"创建表成功",Toast.LENGTH_SHORT).show(); } }); // 添加数据 insertData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String sql="INSERT INTO student(name,sex,age)VALUES('山茶花','男',22);"; db.execSQL(sql); Toast.makeText(getApplicationContext(),"添加数据成功",Toast.LENGTH_SHORT).show(); } }); deleteData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String sql="DELETE FROM student where sid =1;"; db.execSQL(sql); Toast.makeText(getApplicationContext(),"删除数据成功",Toast.LENGTH_SHORT).show(); } }); updateData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String sql ="UPDATE student set name ='山茶花' where sid =2"; db.execSQL(sql); Toast.makeText(getApplicationContext(),"更新数据成功",Toast.LENGTH_SHORT).show(); } }); selectData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 1.获取数据库使用的游标 // Cursor cursor =db.query("student",null,null,null,null,null,null); 移动第一行,如果返回为false,那么证明没有数据 // if (cursor.moveToFirst()){ 2.循环显示数据 // for (int i=0;i<cursor.getCount();i++){ 移动到第几行 // cursor.move(i); 获取ID // Integer sid =cursor.getInt(0); 获取名字 // String name =cursor.getString(1); 获取性别 // String sex =cursor.getString(2); 获取年龄 // Integer age=cursor.getInt(3); // System.out.println(sid+":"+name+":"+sex+":"+age); // } // } Cursor cursor = db.query("student",null,null,null,null,null,null); Log.e("123", cursor.getCount() + ""); if(cursor.moveToFirst()) { do { //获取ID Integer sid = cursor.getInt(cursor.getColumnIndex("sid")); //获取名字 String name = cursor.getString(cursor.getColumnIndex("name")); //获取性别 String sex = cursor.getString(cursor.getColumnIndex("sex")); //获取年龄 Integer age = cursor.getInt(cursor.getColumnIndex("age")); Log.e("111",sid+":" +name+":"+sex+":"+age); } while (cursor.moveToNext()); } } }); } }