往期我们讲过: 初级登录界面:https://blog.csdn.net/genijmni/article/details/106240013 登录界面记住密码:https://blog.csdn.net/genijmni/article/details/106479481 APP启动动画、隐藏标题栏、隐藏系统状态栏: 这次我们将通过数据库实例,了解Android studio SQLite数据库存储的增、删、改、查。 先创建MyDatabaseHelp类继承SQLiteOpenHelper帮助类,然后创建一个student数据库。 目前我们完成了数据库的初步建立,表中拥有了id、姓名、学号、年龄、地址、学校、用户备注的属性。 数据库的四大基础功能:增、删、改、查。通过四大基础功能完成对数据的控制。我们通过配置JAVA文件完成四大功能。 我们在JAVA文件中添加我们需要增加的数据,在数据库创建后,点击增加数据按钮和查询数据按钮完成数据的添加和查看,我们在此添加两条数据,一条用来保留,一条用来删除。 ==getWritableDatabase()==为写入 通过我们添加的数据可得知:我们想要删除一条数据,但我们如何准确的删除我们想要删除的数据呢?这里我们需要对删除数据定位: 这里我通过对姓名进行定位,删除姓名为:ImapBoxD的数据 效果如图: 修改数据的方法和删除数据类似,也需要定位。定位你所要修改的属性。例如 我想要修改学校: 这样,学校属性就全部跟改为:ImapBox学院。 查询表中的数据要遍历Cursor对象,取出数据并打印: 是通过遍历Cursor,把数据结果取出来后,在TextView展示出来: 这样就可以在界面中看到我们需要的结果: 效果如下: 本次我们初步去学习SQLite数据库存储的增、删、改、查四大方法的使用。 登录界面记住密码:https://blog.csdn.net/genijmni/article/details/106479481 APP启动动画、隐藏标题栏、隐藏系统状态栏:
Android studio SQLite—数据库存储
https://blog.csdn.net/genijmni/article/details/106588165创建数据库
表中含有id、stuName、stuNumber、stuAge、stuAddress、stuColleage、stuRemarks、stuRemarks属性。public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_Student = "create table student (" + "id integer primary key autoincrement, " + "stuName text, " + "stuNumber text, " + "stuAge integer, " + "stuAddress text," + "stuColleage text," + "stuRemarks text)"; private Context mContext; public MyDatabaseHelper( Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); mContext = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_Student); Toast.makeText(mContext, "创建成功", Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
效果如图:
数据库功能
增加数据
Button addData = (Button)findViewById(R.id.add_data); addData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db=dbHelper.getWritableDatabase(); ContentValues values = new ContentValues();//临时变量 values.put("stuName","ImapBoxD"); values.put("stuNumber","10"); values.put("stuAge",21); values.put("stuAddress","省份"); values.put("stuColleage","学校"); values.put("stuRemarks","删除"); db.insert("Student",null,values);// 插入第一条数据 values.clear();// 开始插入第二条数据 values.put("stuName","ImapBox"); values.put("stuRemarks","此条信息用来测试删除,用来保留"); db.insert("student",null,values); } });
效果如图:
删除数据
SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("student","stuName=?",new String[]{"ImapBoxD"});
删除数据定位出来姓名,还可以是ID,学号,年龄,地址,学校,备注。只要是数据库里的属性,都可以用来定位。
删除数据完整代码: Button deleteButton = (Button) findViewById(R.id.delete_data); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("student","stuName=?",new String[]{"ImapBoxD"}); //删除一个数据 } });
修改数据
ContentValues values = new ContentValues(); values.put("stuColleage","ImapBox学院"); db.update("student", values,null,null);
修改数据完整代码:Button updataData = (Button)findViewById(R.id.updata_data); updataData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("stuColleage","ImapBox学院"); db.update("student", values,null,null); } });
查询数据
if(cursor.moveToFirst()){ do{ // 遍历Cursor对象,取出数据并打印 int id = cursor.getInt(cursor.getColumnIndex("id")); String stuName = cursor.getString(cursor.getColumnIndex("stuName")); String stuNumber = cursor.getString(cursor.getColumnIndex("stuNumber")); int stuAge = cursor.getInt(cursor.getColumnIndex("stuAge")); String stuAddress = cursor.getString(cursor.getColumnIndex("stuAddress")); String stuColleage = cursor.getString(cursor.getColumnIndex("stuColleage")); String stuRemarks = cursor.getString(cursor.getColumnIndex("stuRemarks")); content.append(id+"tt"+stuName+"tttt"+ stuNumber+"ttttt"+stuAge+"ttttttt" +stuAddress+"ttt" +stuColleage+"tttt"+stuRemarks+"n"); }while(cursor.moveToNext()); }
extView.setText(content.toString());
查询数据完整代码:Button queryButton= (Button) findViewById(R.id.query_data); queryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db = dbHelper.getWritableDatabase(); // 查询Student表中所有的数据 Cursor cursor = db.query("student",null,null,null,null,null,null); StringBuilder content = new StringBuilder(); //转义字符 content.append("id"+"tt"+"stuName"+"tt"+ "stuNumber"+"tt"+"stuAge"+"tt" +"stuAddress"+"tt" +"stuColleage"+"tt"+"stuRemarks"+"n"); if(cursor.moveToFirst()){ do{ // 遍历Cursor对象,取出数据并打印 int id = cursor.getInt(cursor.getColumnIndex("id")); String stuName = cursor.getString(cursor.getColumnIndex("stuName")); String stuNumber = cursor.getString(cursor.getColumnIndex("stuNumber")); int stuAge = cursor.getInt(cursor.getColumnIndex("stuAge")); String stuAddress = cursor.getString(cursor.getColumnIndex("stuAddress")); String stuColleage = cursor.getString(cursor.getColumnIndex("stuColleage")); String stuRemarks = cursor.getString(cursor.getColumnIndex("stuRemarks")); content.append(id+"tt"+stuName+"tttt"+ stuNumber+"ttttt"+stuAge+"ttttttt" +stuAddress+"ttt" +stuColleage+"tttt"+stuRemarks+"n"); }while(cursor.moveToNext()); } cursor.close(); textView.setText(content.toString()); } });
我会在下面贴上完整的布局代码和JAVA文件代码。布局代码
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <Button android:text="创建数据库" android:id="@+id/create_database" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="增加数据" android:id="@+id/add_data" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="修改数据" android:id="@+id/updata_data" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="删除数据" android:id="@+id/delete_data" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="查看数据" android:id="@+id/query_data" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:text="查询数据结果:" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
JAVA代码
public class MainActivity extends AppCompatActivity { private MyDatabaseHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView textView = findViewById(R.id.textView); dbHelper = new MyDatabaseHelper(this,"student.db",null,1); Button createDatabase = (Button)findViewById(R.id.create_database); createDatabase.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){dbHelper.getWritableDatabase();}}); Button addData = (Button)findViewById(R.id.add_data); addData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db=dbHelper.getWritableDatabase(); ContentValues values = new ContentValues();//临时变量 values.put("stuName","ImapBoxD"); values.put("stuNumber","10"); values.put("stuAge",21); values.put("stuAddress","省份"); values.put("stuColleage","学校"); values.put("stuRemarks","删除"); db.insert("Student",null,values);// 插入第一条数据 values.clear();// 开始插入第二条数据 values.put("stuName","ImapBox"); values.put("stuRemarks","此条信息用来测试删除,用来保留"); db.insert("student",null,values); } }); Button updataData = (Button)findViewById(R.id.updata_data); updataData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("stuColleage","ImapBox学院"); db.update("student", values,null,null); } }); Button deleteButton = (Button) findViewById(R.id.delete_data); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("student","stuName=?",new String[]{"ImapBoxD"}); //删除一个数据 } }); Button queryButton= (Button) findViewById(R.id.query_data); queryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db = dbHelper.getWritableDatabase(); // 查询Student表中所有的数据 Cursor cursor = db.query("student",null,null,null,null,null,null); StringBuilder content = new StringBuilder(); //转义字符 content.append("id"+"tt"+"stuName"+"tt"+ "stuNumber"+"tt"+"stuAge"+"tt" +"stuAddress"+"tt" +"stuColleage"+"tt"+"stuRemarks"+"n"); if(cursor.moveToFirst()){ do{ // 遍历Cursor对象,取出数据并打印 int id = cursor.getInt(cursor.getColumnIndex("id")); String stuName = cursor.getString(cursor.getColumnIndex("stuName")); String stuNumber = cursor.getString(cursor.getColumnIndex("stuNumber")); int stuAge = cursor.getInt(cursor.getColumnIndex("stuAge")); String stuAddress = cursor.getString(cursor.getColumnIndex("stuAddress")); String stuColleage = cursor.getString(cursor.getColumnIndex("stuColleage")); String stuRemarks = cursor.getString(cursor.getColumnIndex("stuRemarks")); content.append(id+"tt"+stuName+"tttt"+ stuNumber+"ttttt"+stuAge+"ttttttt" +stuAddress+"ttt" +stuColleage+"tttt"+stuRemarks+"n"); }while(cursor.moveToNext()); } cursor.close(); textView.setText(content.toString()); } }); } }
下一回,我们将SQLite存储运用到注册登录,通过数据库进行注册登录。
也欢迎大家回顾我们往期讲过的初级登录界面、登录界面记住密码、APP启动动画、隐藏标题栏、隐藏系统状态栏的文章。
初级登录界面:https://blog.csdn.net/genijmni/article/details/106240013
https://blog.csdn.net/genijmni/article/details/106588165
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算