原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0802/590.html
	甚么是SQLite?
	SQLite是一款轻量级的关系型数据库
	SQLite的内存?
	运行速度最快,平时只必要几百kB的内存就足够了
	建立数据库
	为了让我们App开发培训可以或许加倍利便地经管数据库,特地供应了SQLiteOpenHelper 类 通过这个类,我们可以举行数据库的建立和晋级。
	SQLiteOpenHelper是一个空洞类 以是我们要建立一个类 来继承它, 
	在SQLiteOpenHelper中 ,有两个空洞要领。分别是Oncreate() 和OnUpgrade(), 
	必须重写这些要领,去完成建立和晋级数据库的逻辑。
	除此这两个要领,SQLiteOpenHelper 另有两个实例方:
	getReadableDatabase()  getWritableDatabase()
	1
	2
	这个两个都可以建立大概翻开一个现有的数据库,唯独差别的是 当磁盘满的时候:
	getReadableDatabase() 回笼的工具是只读的方式。 
	getWritableDatabase() 出现异常
	在建立数据库之前,对数据库的数据类型也要简单打听一下:
	integet: 整型 
	real : 浮点型 
	blob : 二进制 
	text: 文本类型 
	primary key 将id 列设为主键,并用autoincrement环节字显露id列是自增进的。
	新建一个类 继承SQLiteOpenHelper 代码以下:
	package com.example.myapplication15;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.widget.Toast;public class MySQLiteHelper extends SQLiteOpenHelper {
	    private String createSQL = "create table student(" +            "id integer primary key  autoincrement not null ," +            "age integer ," +            "name text not null ," +            "score real )";    private Context context;    public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);        this.context = context;
	    }    @Override
	    public void onCreate(SQLiteDatabase sqLiteDatabase) {
	                  sqLiteDatabase.execSQL(createSQL);
	                  Toast.makeText(context,"胜利",Toast.LENGTH_SHORT).show();
	    }    @Override
	    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
	    }
	}
	我们常州网站开发培训把建表语句定义成了一个字符串常量,而后在onCreate()要领中挪用execSQL()要领实行这条建表语句,并弹出一个Tost提示建立胜利。
	结果图: 
	这里写图片描述
	建立胜利后 ,我举行增加内容,而后,举行盘问: 
	代码演示:
	package com.example.myapplication15;import android.content.ContentValues;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.EditText;public class MainActivity extends AppCompatActivity implements View.OnClickListener {
	    private    MySQLiteHelper myHelper;    private EditText ed;    private Button charu;    private Button chaxun;    private Button qqqq;    private SQLiteDatabase sqldb;    @Override
	    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_main);
	        binID();
	        myHelper = new MySQLiteHelper(this, "student.db", null, 2);
	    }    private void binID() {
	        ed = findViewById(R.id.ed);
	        qqqq=findViewById(R.id.mina_qqqq);
	        charu = findViewById(R.id.button_charu);
	        chaxun = findViewById(R.id.button_chaxun);
	        charu.setOnClickListener(this);
	        chaxun.setOnClickListener(this);
	        qqqq.setOnClickListener(this);
	    }    @Override
	    public void onClick(View view) {        switch (view.getId()) {            case R.id.mina_qqqq:
	                myHelper.getWritableDatabase();                break;            case R.id.button_charu:                //获取SQLiteDatabase工具,读写模式
	                sqldb = myHelper.getWritableDatabase();                //ContentValues相似HashMap,差别是ContentValues只能存简单数据类型,不行存工具
	                ContentValues values = new ContentValues();
	                values.put("name", ed.getText().toString());
	                sqldb.insert("student", null, values);                break;            case R.id.button_chaxun:
	                SQLiteDatabase  sqldb = myHelper.getReadableDatabase();                //建立游标
	                Cursor mcursor = sqldb.query("student",null,null,null, null, null, null);                //游标置顶
	                if (mcursor.moveToFirst()) {                    //遍历
	                    do {
	                        String name = mcursor.getString(mcursor.getColumnIndex("name"));
	                        Log.e("MainActivity", "onClick: " + name);
	                    } while (mcursor.moveToNext());
	                }
	                mcursor.close();                break;
	    }}
	}
	<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	    xmlns:app="http://schemas.android.com/apk/res-auto"
	    xmlns:tools="http://schemas.android.com/tools"
	    android:layout_width="match_parent"
	    android:layout_height="match_parent"
	    android:orientation="vertical"
	    tools:context="com.example.myapplication15.MainActivity"><Button    android:text="建立企业培训"
	    android:id="@+id/mina_qqqq"
	    android:layout_width="match_parent"
	    android:layout_height="50dp" />
	    <EditText        android:id="@+id/ed"
	        android:layout_width="match_parent"
	        android:layout_height="50dp" />
	    <Button        android:layout_marginTop="25dp"
	        android:text="插入"
	        android:id="@+id/button_charu"
	        android:layout_width="match_parent"
	        android:layout_height="50dp" />
	    <Button        android:id="@+id/button_chaxun"
	        android:layout_marginTop="25dp"
	        android:text="盘问"
	        android:layout_width="match_parent"
	        android:layout_height="50dp" /></LinearLayout>
	`结果图“
	这里写图片描述 
	这里写图片描述
	可以看到当我们输入“44444” 点击插入后,点击盘问。会发现 控制台打印了却果。
	除增加和盘问以外。,我们常州软件技术培训还可以举行数据库的 点窜和删除:
	 case  R.id.button_xiugai:
	                String name=ed.getText().toString();
	                String newname=ed_xiugai.getText().toString();
	                SQLiteDatabase sqLiteDatabase4=myHelper.getWritableDatabase();
	                ContentValues values1=new ContentValues();
	                values1.put("name",newname);
	                sqLiteDatabase4.update("student",values1,"name=? and id>?",new String[]{name,"5"});
	                break;
	            case  R.id.button_shanchu:
	                SQLiteDatabase sqLiteDatabase3=myHelper.getReadableDatabase();
	                String name1=ed.getText().toString();
	                sqLiteDatabase3.delete("student","name=?",new String[]{name1});
	                break;
	一首先我增加两个123 后 举行点窜 
	这里写图片描述
	点窜的后果为这里写图片描述 
	我们要是想要删除: 
	这里写图片描述
	点击删除 后盘问,发现惟有12 而123则消散了:
上篇:上一篇:Android Service_AlarmManager组合坑
下篇:下一篇:Java计较时差、日期差总结

