一、了解SQLite
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 SQLite并没有包含大型客户/服务器数据库(如Oracle、SQL Server)的所有特性,但它包含了操作本地数据的所有功能,简单易用、反应快。SQLite内部只支持 NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)和BLOB(二进制对象)这五种数据类型,但实际上SQLite也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转成上面对应的数据类型。 Android内置SQLite,不需要安装和配置即可使用
二、单独安装(两种方法)
1、方法一:永久创建数据库,附加数据库和分离数据库 (1)下载并解压文件
下载地址
(2)新建文件夹将解压后的文件放在同一个文件夹中/SQLite (3)进入/SQLite 目录下,输入sqlite3 2、方法二:不需要设置路径,但数据是暂时的,关闭电脑将失去操作过的所有数据记录。这种方法不能创建、附加或分离数据 下载SQlite预编译的二进制zip文件:sqlite-tools-win32-x86-3170000.zip 。解压到目录:/sqlite 。直接双击运行sqlite3.exe 应用程序。
三、新建/查看/删除表
1、新建和查看(句尾要用;) 2、删除和查看
四、增删查改操作
1、建表 2、insert into (1)写法一 (2)写法二 3、select from
(1)写法一 (2)写法二
3、update where 4、delete from
五、Android Studio内置SQLite
1、Android Studio内置SQLite,不用重新下载。直接在包的目录下使用,在命令行输入sqlite3。 2、xml和java文件 2.1、xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="创建数据库"
android:onClick="testCreateTB"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="新增记录"
android:onClick="testInsert"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更新记录"
android:onClick="testUpdate"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除记录"
android:onClick="testDelete"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询记录"
android:onClick="testQuery"/>
</LinearLayout>
页面:
2.2、java(Activity): (1)DB_Helper
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE table employee(" +
"_id integer primary key autoincrement," +
"name varchar)";
db.execSQL(sql);
System.out.println("数据库初始化成功");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
(2)SQLiteActivity
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.view.View;
import android.widget.Toast;
public class SQLiteActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sqlite);
}
public void testCreateTB(View view){
new DBHelper(SQLiteActivity.this,"mydb2022",null,1).getReadableDatabase();
}
public void testInsert(View view){
DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
SQLiteDatabase database = dbHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("name","jim");
Long id = database.insert("employee",null,values);
if(id>0)
Toast.makeText(SQLiteActivity.this,"新增成功",Toast.LENGTH_SHORT).show();
else
Toast.makeText(SQLiteActivity.this,"新增失败",Toast.LENGTH_SHORT).show();
}
public void testUpdate(View view){
DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
SQLiteDatabase database = dbHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("name","rose");
int rows = database.update("employee",values,"_id = ?",new String[]{"3"});
if(rows>0)
Toast.makeText(SQLiteActivity.this,"修改成功",Toast.LENGTH_SHORT).show();
else
Toast.makeText(SQLiteActivity.this,"修改失败",Toast.LENGTH_SHORT).show();
}
public void testDelete(View view){
DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
SQLiteDatabase database = dbHelper.getReadableDatabase();
int rows = database.delete("employee","_id = ?",new String[]{"2"});
if(rows>0)
Toast.makeText(SQLiteActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
else
Toast.makeText(SQLiteActivity.this,"删除失败",Toast.LENGTH_SHORT).show();
}
public void testQuery(View view){
DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
SQLiteDatabase database = dbHelper.getReadableDatabase();
Cursor cursor = database.query("employee",null,null,null,null,null,null,null);
while(cursor.moveToNext()){
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(SQLiteActivity.this,"id:"+_id+",name:"+name,Toast.LENGTH_SHORT).show();
}
}
}
2.3、测试运行
|