Android studio之数据库入门加学生信息保存提取练习
2019-04-08 20:51
1001 查看
主要建立如下布局,实现学生对应信息存入到数据库,并在下方打印出存入数据库里的信息
话不多说,代码如下:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="学号:" android:textSize="20dp"/> <EditText android:id="@+id/number" android:layout_width="150dp" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名:" android:textSize="20dp"/> <EditText android:id="@+id/name" android:layout_width="150dp" android:layout_height="wrap_content" /> </LinearLayout> <RadioGroup android:id="@+id/RadioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别:" android:textSize="20dp"/> <RadioButton android:id="@+id/man" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:textSize="20dp"/> <RadioButton android:id="@+id/woman" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" android:textSize="20dp"/> </RadioGroup> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="专业:" android:textSize="20dp"/> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Spinner> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/but1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存"/> <Button android:id="@+id/but2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="查询"/> <Button android:id="@+id/del" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除"/> </LinearLayout> <TextView android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </android.support.constraint.ConstraintLayout>
创建一个数据库类,名字随意,我的是MyDatabaseHelper.java
代码为:
package com.example.a2; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.widget.Toast; public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_LIST="create table TTList(" +"id integer primary key autoincrement," +"学号 integer," +"姓名 text," +"性别 text," +"专业 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_LIST); Toast.makeText(mContext, "创建成功", Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
MainActivity.java:
package com.example.a2; 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.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private MyDatabaseHelper dbHelper; private String[] spinnerItems = {"软件工程", "车辆工程", "语言学院"}; String str=""; String man1=""; String woman1=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button putDatabase=(Button) findViewById(R.id.but1); Button outDatabase=(Button) findViewById(R.id.but2); Button delDatabase=(Button) findViewById(R.id.del); final TextView tv=(TextView)findViewById(R.id.info);//获取info所在TextView的位置,便于打印信息 final EditText et1=(EditText) findViewById(R.id.number);//获取学号位置 final EditText et2=(EditText) findViewById(R.id.name);//获取姓名位置 final RadioButton sex1=(RadioButton) findViewById(R.id.man);//获取单选按钮组 final RadioButton sex2=(RadioButton) findViewById(R.id.woman);//获取单选按钮组 final Spinner spin=(Spinner) findViewById(R.id.spinner);//获取Spinner //给Spinner添加适配器 ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, spinnerItems); spin.setAdapter(spinnerAdapter); //创建数据库,建立表名字为TTList.db dbHelper=new MyDatabaseHelper(this,"TTList.db",null,1); dbHelper.getWritableDatabase(); //存数据 putDatabase.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db=dbHelper.getWritableDatabase(); ContentValues values=new ContentValues(); String num=et1.getText().toString();//获取学号信息 String na=et2.getText().toString();//获取名字信息 values.put("学号",num);//存学号 values.put("姓名",na);//存名字 if(sex1.isChecked()){ man1="男"; values.put("性别",man1); } if(sex2.isChecked()){ woman1="女"; values.put("性别",woman1);//存性别 } values.put 20000 ("专业",spin.getSelectedItem().toString());//存Spinner里面被选中的信息 if(num.equals("")||na.equals("")||man1.equals("")&&woman1.equals("")||spin.getSelectedItem().toString().equals("")) { Toast.makeText(MainActivity.this, "信息不全,请补充", Toast.LENGTH_SHORT).show(); } else{ db.insert("TTList",null,values); //注意别漏掉 values.clear(); Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show(); et1.setText("");//保存成功清空学号和姓名信息 et2.setText(""); } } }); //读数据 outDatabase.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db=dbHelper.getWritableDatabase(); //Cursor cursor=db.query("TTList",null,null,null,null,null,null);//读取数据库所有信息 Cursor cursor=db.query("TTList",null,"专业=?",new String[]{"软件工程"}, null,null,null);//读取数据库里面专业是软件工程的所有信息 if(cursor.moveToFirst()){ do{ String number=cursor.getString(cursor.getColumnIndex("学号"));//根据key值读取信息 String name=cursor.getString(cursor.getColumnIndex("姓名")); String sex=cursor.getString(cursor.getColumnIndex("性别")); String subject=cursor.getString(cursor.getColumnIndex("专业")); // Log.d("MainActivity","学号为:"+number); // Log.d("MainActivity","名字为:"+name); // Log.d("MainActivity","性别为:"+sex); // Log.d("MainActivity","专业为:"+subject); str+="学号为:"+number+";"+ "名字为:"+name+";"+ "性别为:"+sex+ ";"+ "专业为:"+subject+"\n";//将数据库信息存到str中并换行 }while (cursor.moveToNext()); } cursor.close(); tv.setText(str);//打印信息 } }); //删除数据库里面的信息 delDatabase.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SQLiteDatabase db=dbHelper.getWritableDatabase(); //删除所有 db.delete("TTList",null,null); //删除专业=软件工程 //db.delete("TTList","专业=?",new String[]{"软件工程"}); tv.setText(""); str=""; } }); } }
效果看下面
像这样多存几组数据,全部保存,然后点击查询
只显示了我们筛选的数据,此时打开数据库看看里面的信息
很显然,只打印了软件工程的信息
相关文章推荐
- 经典SQL学习笔记 (十)-学生信息数据库练习
- python编程练习之四——获取系统内存、CPU、磁盘、平均负载信息并保存到数据库中
- 练习保存学生信息
- (一个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示)
- 第十六周项目1用文件保存学生信息
- 更换navicat之后,数据库的连接信息会自动保存,不会丢失
- 练习!!输入学生信息
- 利用集合完成象数据库那样存储数据,并且可以简单查询,利用map存储学生信息
- 我写的学生信息管理系统,只是练习技术,,,例子比较别扭,哈哈
- 建立学生信息管理数据库
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 学生信息管理系统——数据库配置
- Python入门小练习 003 利用cookielib模拟登录获取账户信息
- 学生管理系统----文件和数据库(oracle)两种保存数据方式
- 【学生信息管理系统 3】:数据库连接不上
- 大文件上传代码,根据下拉列表框选中的市县镇名保存文件到指定目录下,并将文件相关信息写进数据库
- 菜鸟练习C#htmlparser----C#正则加htmlDOM进行网页解析腾讯新闻帖子列表相关信息提取
- 学生信息管理系统总结——数据库的访问方式
- struts1的另一个简单例子(添加学生信息到数据库)
- ejb 3 开发快速入门 4 将数据保存到数据库中