• 数据库SQList 添加 查询 修改 删除


    SQListActivity

      1 package com.example.administrator.myapplication.database.Activity;
      2 
      3 import android.content.ContentValues;
      4 import android.database.Cursor;
      5 import android.database.sqlite.SQLiteDatabase;
      6 import android.os.Bundle;
      7 import android.support.v7.app.AppCompatActivity;
      8 import android.view.View;
      9 import android.widget.Button;
     10 import android.widget.EditText;
     11 import android.widget.Toast;
     12 
     13 import com.example.administrator.myapplication.R;
     14 import com.example.administrator.myapplication.database.MySQLiteOpenHelper;
     15 import com.example.administrator.myapplication.util.Common;
     16 
     17 public class SQLiteActivity extends AppCompatActivity {
     18     Button insertBtn;
     19     Button queryBtn;
     20     Button deleteBtn;
     21     Button updateBtn;
     22     EditText titleET;
     23     EditText deleteET;
     24     EditText updateET;
     25     String TitleReceiver;
     26     String deleteReceiver;
     27     String updateReceiver;
     28 
     29     @Override
     30     protected void onCreate(Bundle savedInstanceState) {
     31         super.onCreate(savedInstanceState);
     32         setContentView(R.layout.activity_sqlite);
     33         titleET = (EditText) findViewById(R.id.titleText);
     34         deleteET = (EditText) findViewById(R.id.deleteText);
     35         updateET = (EditText) findViewById(R.id.updateText);
     36         insertBtn = (Button) findViewById(R.id.insertData);
     37         insertBtn.setOnClickListener(new View.OnClickListener() {
     38             @Override
     39             public void onClick(View v) {
     40                 insertData();
     41             }
     42         });
     43         queryBtn = (Button) findViewById(R.id.queryData);
     44         queryBtn.setOnClickListener(new View.OnClickListener() {
     45             @Override
     46             public void onClick(View v) {
     47                 queryData();
     48             }
     49         });
     50         deleteBtn = (Button) findViewById(R.id.deleteData);
     51         deleteBtn.setOnClickListener(new View.OnClickListener() {
     52             @Override
     53             public void onClick(View v) {
     54                 deleteData();
     55             }
     56         });
     57         updateBtn = (Button) findViewById(R.id.updateData);
     58         updateBtn.setOnClickListener(new View.OnClickListener() {
     59             @Override
     60             public void onClick(View v) {
     61                 updateData();
     62             }
     63         });
     64     }
     65 
     66     //插入数据
     67     public void insertData(){
     68         TitleReceiver = titleET.getText().toString();
     69         //调用帮助类的构造函数,创建数据库
     70         MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
     71         //调用帮助类的onCreate方法,创建表
     72         SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase();
     73         //将保存的数据放入ContentValues中
     74         ContentValues contentValues = new ContentValues();
     75         contentValues.put(Common.NewsTable.TBL_TITLE,TitleReceiver);
     76         contentValues.put(Common.NewsTable.TBL_CONTENT,"内容");
     77         contentValues.put(Common.NewsTable.TBL_SRC,"图片");
     78         contentValues.put(Common.NewsTable.TBL_DATE,"日期");
     79         //调用insert方法,保存数据
     80         sqLiteDatabase.insert(Common.NewsTable.TBL_NAME,null,contentValues);
     81         //!!!数据库操作完成后,一定要关闭数据库
     82         sqLiteDatabase.close();
     83         Toast.makeText(getApplication(),"保存数据成功!",Toast.LENGTH_SHORT).show();
     84     }
     85     //查询数据
     86     public void queryData(){
     87         MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
     88         SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getReadableDatabase();
     89         //调用SQLiteDatabase的Query方法,返回数据库查询的结果集
     90         Cursor cursor = sqLiteDatabase.query(
     91                 Common.NewsTable.TBL_NAME,
     92                 new String[]{Common.NewsTable.TBL_TITLE,Common.NewsTable.TBL_CONTENT,Common.NewsTable.TBL_SRC,Common.NewsTable.TBL_DATE},
     93                 null,null,null,null,null
     94         );
     95         //!!查询对应数据的时候,一定要现获取列的索引值
     96         while (cursor.moveToNext()){
     97             int titleIndex = cursor.getColumnIndex(Common.NewsTable.TBL_TITLE);
     98             String title = cursor.getString(titleIndex);
     99             Toast.makeText(getApplication(),title,Toast.LENGTH_SHORT).show();
    100         }
    101         //数据查询完毕以后,1:关系结果集 2.关闭SQLiteDataBase
    102         cursor.close();
    103         sqLiteDatabase.close();
    104         Toast.makeText(getApplication(),"查询完毕!",Toast.LENGTH_SHORT).show();
    105     }
    106     //删除数据
    107     private void deleteData() {
    108         deleteReceiver = deleteET.getText().toString();
    109         MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
    110         SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase();
    111         sqLiteDatabase.delete(
    112                 Common.NewsTable.TBL_NAME,
    113                 // ?:占位符 " = ? "相当于 " = 标题 ", null
    114                 Common.NewsTable.TBL_TITLE+ " = ?",
    115                 new String[]{deleteReceiver}
    116         );
    117         sqLiteDatabase.close();
    118         Toast.makeText(getApplication(),"删除成功!",Toast.LENGTH_SHORT).show();
    119     }
    120     //修改数据
    121     private void updateData() {
    122         updateReceiver = updateET.getText().toString();
    123         MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
    124         SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase();
    125         ContentValues contentValues = new ContentValues();
    126         contentValues.put(Common.NewsTable.TBL_TITLE,"这是修改后的数据");
    127         sqLiteDatabase.update(
    128                 Common.NewsTable.TBL_NAME,
    129                 contentValues,
    130                 Common.NewsTable.TBL_TITLE + " = ?",
    131                 new String[]{updateReceiver}
    132         );
    133         sqLiteDatabase.close();
    134         Toast.makeText(getApplication(),"修改成功!",Toast.LENGTH_SHORT).show();
    135     }
    136 }
    MySQListOPENHelper   创建数据库 创建表
     1 package com.example.administrator.myapplication.database;
     2 
     3 import android.content.Context;
     4 import android.database.sqlite.SQLiteDatabase;
     5 import android.database.sqlite.SQLiteOpenHelper;
     6 
     7 import com.example.administrator.myapplication.util.Common;
     8 
     9 /**
    10  * Created by Administrator on 2016-9-19.
    11  */
    12 
    13 //帮助类继承SQLiteOpenHelper,方法:构造函数,创建数据库,创建表,更新表
    14 public class MySQLiteOpenHelper extends SQLiteOpenHelper {
    15     private static final String DB_Name = "new.db"; //数据库后缀为db,常量用大写
    16     private static final int VERSION = 1; //数据库版本号
    17     //上下文,数据库名字,factory默认null,版本号
    18     /*public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    19         super(context, DB_Name, factory, VERSION);
    20     }*/
    21     //实现了数据库的创建,factory默认null,版本号固定
    22     public MySQLiteOpenHelper(Context context) {
    23         super(context, DB_Name, null, VERSION);
    24     }
    25 
    26     //在onCreate方法中创建表,只执行一次
    27     @Override
    28     public void onCreate(SQLiteDatabase db) {
    29         String sql = Common.NewsTable.getCreateTableSQL();
    30         db.execSQL(sql);
    31     }
    32     //onUpgrade更新表
    33     @Override
    34     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    35         //先删除原表,再调用onCreate创建新表
    36         db.execSQL("drop table "+ Common.NewsTable.TBL_NAME);
    37         onCreate(db);
    38     }
    39 }

    Common 公共类

     1 package com.example.administrator.myapplication.util;
     2 
     3 /**
     4  * Created by Administrator on 2016-9-19.
     5  */
     6 public class Common {
     7     public static class NewsTable{
     8         public static final String TBL_NAME ="News";
     9         public static final String TBL_TITLE = "NewsTitle";
    10         public static final String TBL_CONTENT = "NewsContent";
    11         public static final String TBL_SRC = "NewsImg";
    12         public static final String TBL_DATE = "NewsDate";
    13 
    14         public static String getCreateTableSQL(){
    15             String sql = "create table if not exists "
    16                         + TBL_NAME
    17                         + "("
    18                         + " _id integer primary key autoincrement,"
    19                         + TBL_TITLE + " text,"
    20                         + TBL_CONTENT + " text,"
    21                         + TBL_SRC + " text,"
    22                         + TBL_DATE + " varchar(50)"
    23                         + ")";
    24             return sql;
    25         }
    26     }
    27 }

    activity_sqlite

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:orientation="vertical"
     7     tools:context=".database.Activity.SQLiteActivity">
     8 
     9     <EditText
    10         android:id="@+id/titleText"
    11         android:layout_width="match_parent"
    12         android:layout_height="wrap_content"
    13         android:hint="请输入标题" />
    14 
    15     <LinearLayout
    16         android:layout_width="match_parent"
    17         android:layout_height="wrap_content"
    18         android:orientation="horizontal">
    19 
    20         <TextView
    21             android:layout_width="wrap_content"
    22             android:layout_height="wrap_content"
    23             android:text="请输入要删除的数据" />
    24 
    25         <EditText
    26             android:id="@+id/deleteText"
    27             android:layout_width="match_parent"
    28             android:layout_height="wrap_content" />
    29     </LinearLayout>
    30 
    31     <LinearLayout
    32         android:layout_width="match_parent"
    33         android:layout_height="wrap_content"
    34         android:orientation="horizontal">
    35 
    36         <TextView
    37             android:layout_width="wrap_content"
    38             android:layout_height="wrap_content"
    39             android:text="请输入要修改的数据" />
    40 
    41         <EditText
    42             android:id="@+id/updateText"
    43             android:layout_width="match_parent"
    44             android:layout_height="wrap_content" />
    45     </LinearLayout>
    46 
    47     <Button
    48         android:id="@+id/insertData"
    49         android:layout_width="match_parent"
    50         android:layout_height="wrap_content"
    51         android:text="添加数据" />
    52 
    53     <Button
    54         android:id="@+id/queryData"
    55         android:layout_width="match_parent"
    56         android:layout_height="wrap_content"
    57         android:text="查找数据  " />
    58 
    59     <Button
    60         android:id="@+id/updateData"
    61         android:layout_width="match_parent"
    62         android:layout_height="wrap_content"
    63         android:text="修改数据" />
    64 
    65     <Button
    66         android:id="@+id/deleteData"
    67         android:layout_width="match_parent"
    68         android:layout_height="wrap_content"
    69         android:text="删除数据" />
    70 </LinearLayout>
  • 相关阅读:
    Object-c学习之路四(oc内存管理autorelease)
    Object-c学习之路三(@class与#import的区别)
    Object-c学习之路二(oc内存管理黄金法则1)
    Object-c学习之路(oc点语法)
    python(学习之路一)
    css中的position属性
    盒子模型——边框(Border)
    CSS盒子模型
    form(表单)标签常用标签及属性
    Codeforces Round #271 (Div. 2) D Flowers【计数dp】
  • 原文地址:https://www.cnblogs.com/xiaolei121/p/5885912.html
Copyright © 2020-2023  润新知