AndroidStudio实验——数据存储管理
文章目录
- AndroidStudio实验——数据存储管理
- @[toc]
- 一:实验目标和实验内容:
- 二:数据库的CRUD操作
- 【一】创建(Create)
- 【2】读取(Read)
- 【3】更新(Update)
- 【4】删除(Delete)
- 三:实验结果:(实验小结与结果截图)
- 1、功能说明与核心代码
- 核心代码截图(FileMainActivity.java):
- layout布局文件(activity_file_main.XML)
- 2,功能说明
- 【1】button1
- 【2】button2
- 【3】button3
- 【4】button4
- 【5】button5
- 【6】button6
- 【7】button7
- 【8】button8
- 【9】button9
- 【10】button10
- 四:实验小结
文章目录
- AndroidStudio实验——数据存储管理
- @[toc]
- 一:实验目标和实验内容:
- 二:数据库的CRUD操作
- 【一】创建(Create)
- 【2】读取(Read)
- 【3】更新(Update)
- 【4】删除(Delete)
- 三:实验结果:(实验小结与结果截图)
- 1、功能说明与核心代码
- 核心代码截图(FileMainActivity.java):
- layout布局文件(activity_file_main.XML)
- 2,功能说明
- 【1】button1
- 【2】button2
- 【3】button3
- 【4】button4
- 【5】button5
- 【6】button6
- 【7】button7
- 【8】button8
- 【9】button9
- 【10】button10
- 四:实验小结
一:实验目标和实验内容:
1,掌握数据存储的基本概念,能编写数据存储过程。
2、掌握SQLITE的基本概念,能实现基础CRUD操作。
SQLite是一种轻量级的数据库管理系统,它被广泛用于移动应用和桌面应用中。SQLite数据库是一个服务器进程,它存储在一个单一的磁盘文件中。
3、需实现的具体功能为:数据的标准增、删、改、查操作。
二:数据库的CRUD操作
【一】创建(Create)
(1)创建数据库:
在Android中,SQLite数据库通常由SQLiteOpenHelper的子类创建和管理。
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "myDatabase.db";
private static final int DATABASE_VERSION = 1;
@Overridejava
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS users (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name TEXT," +
"age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS users");
onCreate(db);
}
}
(2)插入数据:
使用insert()方法向表中插入新行。
SQLiteDatabase db = databaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "zjy");
values.put("age", 20);
long newRowId = db.insert("users", null, values);
【2】读取(Read)
(1)查询数据:
使用query()方法从表中检索数据。
Cursor cursor = db.query("users", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
// 使用数据...
} while (cursor.moveToNext());
}
cursor.close();
【3】更新(Update)
更新数据:
使用update()方法修改表中的现有行。
ContentValues updateValues = new ContentValues();
updateValues.put("age", 31);
int rowsUpdated = db.update("users", updateValues, "name = ?", new String[]{"zjy"});
【4】删除(Delete)
删除数据:
使用delete()方法从表中删除行。
int rowsDeleted = db.delete("users", "name = ?", new String[]{"zjy"});
三:实验结果:(实验小结与结果截图)
1、功能说明与核心代码
核心代码截图(FileMainActivity.java):
layout布局文件(activity_file_main.XML)
2,功能说明
【1】button1
点击此按钮会将键值对"name"和"zjy",以及"key"和"123456"保存到SharedPreferences中,并在日志中打印出保存的"name"值。
说明:点击button,存入事先写入的数据
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sp.edit()
.putString("name","zjy")
.putString("key","123456")
.commit();
Log.d("zjy","Data saved "+sp.getString("name","default"));
}
});
实验结果:
【2】button2
点击此按钮会从SharedPreferences中读取"name"的值,并将其设置为textView1的文本。
说明:读出button1存入的数据
核心代码:
button2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
textView1.setText(sp.getString("name","123"));
}
});
实验结果截图:
【3】button3
点击此按钮会尝试打开一个FileOutputStream来写入文件zjyfile.txt,写入字符串"hello"。
核心代码:
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
outputStream=new FileOutputStream(file);
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
try {
outputStream.write("hello".getBytes());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
实验结果截图:
【4】button4
点击此按钮会尝试打开一个FileInputStream来读取文件zjyfile.txt,并使用BufferedReader读取第一行文本,然后将文件的编码和第一行文本设置为textView1的文本。
核心代码:
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/* sp.edit()
.putString("name","zjy")
.putString("key","123456")
.commit();
Log.d("zjy","Data saved "+sp.getString("name","default"));*/
try {
FileInputStream inputStream=new FileInputStream(file);
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
try {
inputStream=new FileInputStream(file);
InputStreamReader reader=new InputStreamReader(inputStream);
str1= reader.getEncoding();
//fileReader=new FileReader(file);
BufferedReader bufferedReader=new BufferedReader(reader);
str2=bufferedReader.readLine();
} catch (IOException e) {
throw new RuntimeException(e);
}
textView1.setText(str1+"/"+str2);
}
});
实验结果截图:
【5】button5
点击此按钮会创建一个Person对象,并使用ContentValues将该对象的信息插入到数据库中。这里使用的是自定义的MyDAO类来处理数据库操作。
核心代码:
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Person person=new Person("zhangsan",20);
ContentValues values1=new ContentValues();
values1.put("name",person.name);
values1.put("age",person.age);
//db.insert("person",null,values1);
myDAO.Myinsert(values1);
}
});
实验结果截图:
【6】button6
点击此按钮会从数据库中删除所有age字段为"18"的记录。
核心代码:
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.delete("person","age=?",new String[]{"20"});
}
});
实验结果截图:
【7】button7
点击此按钮会更新数据库中所有age字段为"18"的记录,这里使用的是自定义的MyDAO类来处理更新操作。
核心代码:
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*Person person=new Person("zahngsan",18);
ContentValues values1=new ContentValues();
//values1.put("name",person.name);
values1.put("age",person.age);
db.update("person",values1,"name=? AND age=?",new String[]{"zhangsan","20"});
*/
myDAO.Myupdate();
}
});
实验结果截图:
【8】button8
点击此按钮会查询数据库中所有age字段为"20"的记录。
核心代码:
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor cursor=db.query("person",null,
"age=?",new String[]{"20"},
null,null,null);
}
});
实验结果截图:
【9】button9
点击此按钮会查询数据库中所有名为"zhangsan"的记录,并将结果传递给另一个活动SqlrecycleviewActivity。
核心代码:
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//StringBuilder stringBuilder=myDAO.MyqueryAll("zhangsan");
//textView1.setText(stringBuilder);
Intent intent=new Intent(
FileMainActivity.this,SqlrecycleviewActivity.class);
list1=myDAO.MyqueryAll("zhangsan");
intent.putExtra("data",list1);
startActivity(intent);
}
});
实验结果截图:
【10】button10
点击此按钮会使用Glide库从网络加载一个图片,并将其设置到imageView中。“https://www.httpbin.org/image/png”
核心代码:
button10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Glide.with(context)
.load("https://www.httpbin.org/image/png")
.into(imageView);
}
});
实验结果截图:
四:实验小结
button5、button6、button7和button8涉及了SQLite数据库的CRUD操作。这些操作通过自定义的MyDAO类实现,展示了如何将对象数据模型映射到数据库表,并执行插入、删除、更新和查询操作。
实验中使用了ContentValues来传递数据,这是Android提供的一个方便的类,用于将数据插入或更新到数据库中。
button10演示了如何使用Glide库从网络加载图片。这是一个常见的需求,尤其是在需要显示网络图片的应用中。需要注意的是,URL字符串的正确性对于成功加载图片至关重要。
写在最后:
也许登上这一座山,又望见更高的山,人畏惧困难便容易自困,但殊不知行走的过程,每一步都足矣丰盈此生。所以,尽量的学习,尽量的尽力,尽量的旅游,尽量的吃好东西,人生就比较美好一点点,就是这么简单。