您的位置:首页 > 移动开发 > Android开发

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="";
}
});
}

}

效果看下面

像这样多存几组数据,全部保存,然后点击查询

只显示了我们筛选的数据,此时打开数据库看看里面的信息

很显然,只打印了软件工程的信息

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐