• 数据存储与访问


    1.布局



    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名:" /> <EditText android:id="@+id/edit_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别:" /> <EditText android:id="@+id/edit_sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="部门:" /> <EditText android:id="@+id/edit_department" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" > <requestFocus /> </EditText> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="工资:" /> <EditText android:id="@+id/edit_salary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/btn_insert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加" /> <Button android:id="@+id/btn_clear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="清除" /> <Button android:id="@+id/btn_showall" android:layout_width="100dp" android:layout_height="wrap_content" android:text="显示全部" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" ID: " /> <EditText android:id="@+id/secachID" android:layout_width="79dp" android:layout_height="wrap_content" android:ems="10" /> <Button android:id="@+id/btn_search" android:layout_width="100dp" android:layout_height="wrap_content" android:text="显示" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/text_show" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/display" android:text="" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> </LinearLayout> </ScrollView> </LinearLayout>

      

    2.src中的People类

     1 package com.example.sqltest;
     2 
     3 public class People {
     4     public int  ID = -1; 
     5     public String Name ;
     6     public String  Sex;
     7     public String Department;
     8     public float  Salary;
     9     @Override
    10     public String toString( ){
    11         String result = "";
    12         result += "ID: " + this.ID + "," ;
    13         result += "姓名:" + this.Name + ",";
    14         result += "性别:" + this.Sex + ",";
    15         result += "部门:" + this.Department + "," ;
    16         result += "薪水:" + this.Salary + "," ;
    17         return result;
    18 }
    19 
    20 }

    3.DBAdapter.java

      1 package com.example.sqltest;
      2 
      3 import android.content.ContentValues;
      4 import android.content.Context;
      5 import android.database.Cursor;
      6 import android.database.sqlite.SQLiteDatabase;
      7 import android.database.sqlite.SQLiteDatabase.CursorFactory;
      8 import android.database.sqlite.SQLiteException;
      9 import android.database.sqlite.SQLiteOpenHelper;
     10 
     11 
     12 
     13 public class DBAdapter {
     14     private static final String DB_NAME = "test.db";
     15     private static final String DB_TABLE = "peopleinfo";
     16     private static final int DB_VERSION = 1;
     17 
     18     public static final String KEY_ID = "id";
     19     public static final String KEY_NAME = "name";
     20     public static final String KEY_SEX = "sex";
     21     public static final String KEY_DEPARTMENT = "department";
     22     public static final String KEY_SALARY = "salary";
     23 
     24     private SQLiteDatabase db;
     25     private final Context context;
     26     private DBOpenHelper dbOpenHelper;
     27 
     28     public DBAdapter(Context _context) {
     29         context = _context;
     30     }
     31     public void close() {
     32         if (db != null) {
     33             db.close();
     34             db = null;
     35         }
     36     }
     37     public void open() throws SQLiteException {
     38         dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);
     39         try {
     40             db = dbOpenHelper.getWritableDatabase();
     41         } catch (SQLiteException ex) {
     42             db = dbOpenHelper.getReadableDatabase();
     43         }
     44     }
     45     public long insert(People people) {
     46         ContentValues newValues = new ContentValues();
     47 
     48         newValues.put(KEY_NAME, people.Name);
     49         newValues.put(KEY_SEX, people.Sex);
     50         newValues.put(KEY_DEPARTMENT, people.Department);
     51         newValues.put(KEY_SALARY, people.Salary);
     52         return db.insert(DB_TABLE, null, newValues);
     53     }
     54     public People[] queryAllData() {
     55         Cursor results = db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME,
     56                 KEY_SEX,KEY_DEPARTMENT,KEY_SALARY }, null, null, null, null, null);
     57         return ConvertToPeople(results);
     58     }
     59     public People[] queryOneData(long id) {
     60         Cursor results = db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME,
     61                 KEY_SEX,KEY_DEPARTMENT,KEY_SALARY }, KEY_ID + "=" + id, null, null, null,
     62                 null);
     63         return ConvertToPeople(results);
     64     }
     65     private People[] ConvertToPeople(Cursor cursor) {
     66         int resultCounts = cursor.getCount();
     67         if (resultCounts == 0 || !cursor.moveToFirst()) {
     68             return null;
     69         }
     70         People[] peoples = new People[resultCounts];
     71         for (int i = 0; i < resultCounts; i++) {
     72             peoples[i] = new People();
     73             peoples[i].ID = cursor.getInt(0);
     74             peoples[i].Name = cursor.getString(cursor.getColumnIndex(KEY_NAME));
     75             peoples[i].Sex = cursor.getString(cursor.getColumnIndex(KEY_SEX));
     76             peoples[i].Department = cursor.getString(cursor.getColumnIndex(KEY_DEPARTMENT));
     77             peoples[i].Salary = cursor.getFloat(cursor.getColumnIndex(KEY_SALARY));
     78             cursor.moveToNext();
     79         }
     80         return peoples;
     81     }
     82       public long deleteAllData() {
     83           return db.delete(DB_TABLE, null, null);
     84       }
     85 
     86       public long deleteOneData(long id) {
     87           return db.delete(DB_TABLE,  KEY_ID + "=" + id, null);
     88       }
     89       public long updateOneData(long id , People people){
     90           ContentValues updateValues = new ContentValues();      
     91           updateValues.put(KEY_NAME, people.Name);
     92           updateValues.put(KEY_SEX,people.Sex);
     93           updateValues.put(KEY_DEPARTMENT, people.Department);
     94           updateValues.put(KEY_SALARY, people.Salary);
     95           
     96           return db.update(DB_TABLE, updateValues,  KEY_ID + "=" + id, null);
     97       }
     98     private static class DBOpenHelper extends SQLiteOpenHelper {
     99 
    100         public DBOpenHelper(Context context, String name,
    101                 CursorFactory factory, int version) {
    102             super(context, name, factory, version);
    103         } // 构造方法
    104 
    105         private static final String DB_CREATE = "create table " + DB_TABLE
    106                 + " (" + KEY_ID + " integer primary key autoincrement, "
    107                 + KEY_NAME + " text not null," + KEY_SEX + " text," + KEY_DEPARTMENT
    108                 + " text," + KEY_SALARY + " float);";
    109 
    110         @Override
    111         public void onCreate(SQLiteDatabase _db) {
    112             _db.execSQL(DB_CREATE);
    113         }
    114 
    115         @Override
    116         public void onUpgrade(SQLiteDatabase _db, int _oldVersion,
    117                 int _newVersion) {
    118             _db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
    119             onCreate(_db);
    120         }
    121 
    122     }
    123 }

    4.编写MainActivity.java

      1 package com.example.sqltest;
      2 
      3 import android.app.Activity;
      4 import android.os.Bundle;
      5 import android.view.Menu;
      6 import android.view.View;
      7 import android.view.View.OnClickListener;
      8 import android.widget.Button;
      9 import android.widget.EditText;
     10 import android.widget.TextView;
     11 
     12 public class MainActivity extends Activity {
     13     
     14     private EditText name;
     15     private EditText salary;
     16     private EditText department;
     17     private EditText sex;
     18     private EditText secachID;
     19     private Button btn_insert;
     20     private Button btn_clear;
     21     private Button btn_showall;
     22     private Button btn_search;
     23     private TextView text;
     24     private TextView display;
     25     private DBAdapter dbAdepter;
     26 
     27     @Override
     28     protected void onCreate(Bundle savedInstanceState) {
     29         super.onCreate(savedInstanceState);
     30         setContentView(R.layout.activity_main);
     31         
     32         name = (EditText)findViewById(R.id.edit_name);
     33         salary = (EditText)findViewById(R.id.edit_salary);
     34         department = (EditText)findViewById(R.id.edit_department);
     35         sex = (EditText)findViewById(R.id.edit_sex);
     36         secachID = (EditText)findViewById(R.id.secachID);
     37         btn_insert = (Button)findViewById(R.id.btn_insert);
     38         btn_clear = (Button)findViewById(R.id.btn_clear);
     39         btn_showall = (Button)findViewById(R.id.btn_showall);
     40         btn_search = (Button)findViewById(R.id.btn_search);
     41         text = (TextView)findViewById(R.id.text_show);
     42         display = (TextView) findViewById(R.id.display);
     43         
     44         dbAdepter = new DBAdapter(this);
     45         dbAdepter.open();
     46         
     47         btn_insert.setOnClickListener(new OnClickListener() {
     48             
     49             @Override
     50             public void onClick(View v) {
     51                 // TODO Auto-generated method stub
     52                 People people = new People();
     53                 people.Name = name.getText().toString();
     54                 people.Sex = sex.getText().toString();
     55                 people.Department = department.getText().toString();
     56                 people.Salary = Float.parseFloat(salary.getText().toString());
     57                 long colunm = dbAdepter.insert(people);
     58             
     59                 if (colunm == -1 ){
     60                     text.setText("添加过程错误!");
     61                 } else {
     62                     text.setText("成功添加数据,ID:"+String.valueOf(colunm));    
     63                     
     64                 }
     65             }
     66         });
     67         btn_clear.setOnClickListener(new OnClickListener() {
     68             
     69             @Override
     70             public void onClick(View v) {
     71                 // TODO Auto-generated method stub
     72                 display.setText("");
     73             }
     74         });
     75         btn_showall.setOnClickListener(new OnClickListener() {
     76             
     77             @Override
     78             public void onClick(View v) {
     79                 // TODO Auto-generated method stub
     80                 People[] peoples = dbAdepter.queryAllData();
     81                 if (peoples == null){
     82                     text.setText("数据库中没有数据");
     83                     return;
     84                 }
     85                 text.setText("数据库:");
     86                 String msg = "";
     87                 for (int i = 0 ; i<peoples.length; i++){
     88                     msg += peoples[i].toString()+"
    ";
     89                 }
     90                 display.setText(msg);
     91             }
     92         });
     93         btn_search.setOnClickListener(new OnClickListener() {
     94             
     95             @Override
     96             public void onClick(View v) {
     97                 // TODO Auto-generated method stub
     98                 int id = Integer.parseInt(secachID.getText().toString());
     99                 People[] peoples = dbAdepter.queryOneData(id);
    100                 
    101                 if (peoples == null){
    102                     text.setText("数据库中没有ID为"+String.valueOf(id)+"的数据");
    103                     return;
    104                 }
    105                 text.setText("数据库:");
    106                 display.setText(peoples[0].toString());
    107             }        
    108         });
    109         
    110     }
    111   
    112     @Override
    113     public boolean onCreateOptionsMenu(Menu menu) {
    114         // Inflate the menu; this adds items to the action bar if it is present.
    115         getMenuInflater().inflate(R.menu.main, menu);
    116         return true;
    117     }
    118     
    119 }

  • 相关阅读:
    [错误处理]UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
    [已解决]使用 apt-get update 命令提示 ...中被配置了多次
    linux各种版本查看方法
    [Pandas技巧] 如何把pandas dataframe对象或series对象转换成list
    linux下终止相关操作
    [错误处理]Vim卡死,无法输入是怎么回事?是不是按了Ctrl+S
    批量修改文件名称方法
    pycharm配置 自动运行指定脚本
    pip安装超时,更换国内镜像源安装
    命令行特殊字符名字转义
  • 原文地址:https://www.cnblogs.com/anylemons/p/6891916.html
Copyright © 2020-2023  润新知