运行
3)修改更新语句
运行
查询
3)删除语句
/删除/
DELETE FROM employee WHERE _id=1;
运行
查询
1、相关API
(1)SQLiteOpenHelper
(2)SqliteDatabase
(3)Cursor
下面举例
2、测试用例
(1)测试Sqlite数据库存储,修改MainActivity当中onClickDB方法
(2)创建DBActivity
(3)修改activity_db.xml完善布局
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“fill_parent”
android:layout_height=“fill_parent”
android:orientation=“vertical”
android:padding=“2dp”
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testCreateDB”
android:text=“Create DB” />
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testUpdateDB”
android:text=“Update DB” />
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testInsert”
android:text=“Insert” />
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testUpdate”
android:text=“Update” />
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testDelete”
android:text=“Delete” />
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testQuery”
android:text=“query” />
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:onClick=“testTransaction”
android:text=“Test Transaction” />
(4)完善DBActivity设置回调方法:
package com.itzheng.l04_datastorage;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
/*
- 测试Sqlite数据库存储
*/
public class DBActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_db);
}
/*
- 创建库
*/
public void testCreateDB(View v) {
}
/*
- 更新库
*/
public void testUpdateDB(View v) {
}
/*
- 插入
*/
public void testInsert(View v) {
}
/*
- 更新
*/
public void testUpdate(View v) {
}
/*
- 删除
*/
public void testDelete(View v) {
}
/*
- 查询
*/
public void testQuery(View v) {
}
/*
- 测试事务
*/
public void testTransaction(View v) {
}
}
3、完善对应DBActivity当中的回调方法:创建数据库初始化数据
(1)创建DBHelper类并继承SQLiteOpenHelper,完善当前方法
(2)建表插入一些初始化数据
/*
- 数据库操作的帮助类
*/
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, int version) {
super(context, “itzheng.db”, null, version);
}
/*
- 什么时候调用? 当数据库文件创建的时候调用(1次) 在此方法当中做什么? 建表 插入一些初始化数据
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.e(“TAG”, “DBHelper onCreate”);
//键表
String sql = "create table person( "
-
“_id integer primary key autoincrement,”
-
“name varchar,”
-
"age int ) ";
db.execSQL(sql);
//插入一些初始化阿虎局
db.execSQL("insert into person(name,age) values (‘Tom1’,11) ");
db.execSQL("insert into person(name,age) values (‘Tom2’,12) ");
db.execSQL("insert into person(name,age) values (‘Tom3’,13) ");
}
/*
- 当传入的数据库版本号大于数据库的版本号时调用
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.e(“TAG”, “DBHelper onUpgrade”);
}
}
(3)修改DBActivity当中的testCreateDB方法:实现创建库
完善方法获取连接并创建数据库
/*
- 创建库
*/
public void testCreateDB(View v) {
//获取要创建的数据库对象
DBHelper dbHelper = new DBHelper(this, 1);//this当中是content代表当前背景下获取创建数据库对象
//获取连接
SQLiteDatabase database = dbHelper.getReadableDatabase();
Toast.makeText(this, “创建数据库”, 0).show();
}
测试
(4)修改DBActivity当中的testUpdateDB方法:更新库
需要传入更大的版本号
/*
- 更新库
*/
public void testUpdateDB(View v) {
// 获取要创建的数据库对象
DBHelper dbHelper = new DBHelper(this, 2);// 传入更大的版本号
// 获取连接
SQLiteDatabase database = dbHelper.getReadableDatabase();
Toast.makeText(this, “更新数据库”, 0).show();
}
4、完善对应DBActivity当中的回调方法:增,删,改,查,事务
(1)插入数据(添加记录):完善DBActivity当中的testInsert方法
/*
- 添加记录
*/
public void testInsert(View v) {
//1、得到连接对象
DBHelper dbHelper = new DBHelper(this, 2);
SQLiteDatabase database = dbHelper.getReadableDatabase();
//2、执行insert insert into person(name,age) values(‘Tom’,12)
ContentValues values = new ContentValues();
values.put(“name”, “Tom”);
values.put(“age”, 12);
long id = database.insert(“person”, null, values);
//3、关闭
database.close();
//4、提示
Toast.makeText(this, “id=”+id, 1).show();
}
测试:插入数据成功
(2)更新数据
/*
- 更新
*/
public void testUpdate(View v) {
// 1、得到连接对象
DBHelper dbHelper = new DBHelper(this, 2);
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 2、执行update update person set name = Jack,age=13 where _id = 4
ContentValues values = new ContentValues();
values.put(“name”, “jack”);
values.put(“age”, 13);
int updateCount = database.update(“person”, values, “_id=?”, new String[] { “4” });
// 3、关闭
database.close();
// 4、提示
Toast.makeText(this, “updateCount=” + updateCount, 1).show();
}
(3)删除数据
/*
- 删除
*/
public void testDelete(View v) {
// 1、得到连接对象
DBHelper dbHelper = new DBHelper(this, 2);
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 2、执行delete from person where _id = 2
int deleteCount = database.delete(“person”, “_id=2”, null);
// 3、关闭
database.close();
// 4、提示
Toast.makeText(this, “deleteCount=” + deleteCount, 1).show();
}
测试
(4)查询数据
1)查询所有
/*
- 查询
*/
public void testQuery(View v) {
// 1、得到连接对象
DBHelper dbHelper = new DBHelper(this, 2);
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 2、执行Query select * from person
Cursor cursor = database.query(“person”, null, null, null, null, null, null);
// 得到匹配的总记录数
int count = cursor.getCount();
// 取出cursor当中所有的数据
while (cursor.moveToNext()) {
// _id
int id = cursor.getInt(0);
// name
String name = cursor.getString(1);
// age
int age = cursor.getInt(cursor.getColumnIndex(“age”));
Log.e(“TAG”, id + “-” + name + “-” + age);
}
// 3、关闭
cursor.close();
database.close();
// 4、提示
Toast.makeText(this, “count=” + count, 1).show();
}
2)查询ID为三的数据
cursor = database.query(“person”, null, “_id=?”, new String[]{“3”}, null, null, null);
1、完善DBActivity当中的testTransaction方法
/*
-
测试事务 update person set age = 12 where _id = 1; update person set age = 15
-
where _id = 3
*/
public void testTransaction(View v) {
// 1、得到连接对象
DBHelper dbHelper = new DBHelper(this, 2);
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 2、执行update update person set ,age=13 where _id = 4
总结
算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。
这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。
部分资料展示:
有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
date person set age = 12 where _id = 1; update person set age = 15
- where _id = 3
*/
public void testTransaction(View v) {
// 1、得到连接对象
DBHelper dbHelper = new DBHelper(this, 2);
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 2、执行update update person set ,age=13 where _id = 4
总结
算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。
这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。
部分资料展示:
[外链图片转存中…(img-5oOBsq7K-1714548734902)]
[外链图片转存中…(img-g1pq44ys-1714548734904)]
[外链图片转存中…(img-WMcVQMAL-1714548734905)]
[外链图片转存中…(img-cK0At4pb-1714548734906)]
有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!