使用安卓自带sqlite数据库简单实用(增删查改)

版权声明:转载请标明出处 https://blog.csdn.net/easy_purple/article/details/80920369
使用安卓自带的sqlite数据库操作数据库(eclipse)

先上图:




主界面是增加数据、更新数据、删除数据三个按钮,,查询功能的话,    在删除界面、更新界面  写的查询所有数据。
接下来主要是代码的展示:(代码里有必要的注释)
SQLiteDBUtil.java     数据库工具类
activity_main.xml     主界面
MainActivity.java      
AddActivity.java       增加数据界面
UpdateActivity.java  更新数据界面
DeleteActivity.java    删除数据界面


首先新建一个数据库工具类:
SQLiteDBUtil.java
package easy.practice_sql;
import android.content.Context;
import android.database.DatabaseErrorHandler ;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory ;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLiteDBUtil extends SQLiteOpenHelper {
      public static final String NAME = "practiceDataBases" ; //数据库名
      public static final int VERSION = 1; //版本号
      /**
      * content上下文对象 name数据库名称 factory数据库工厂 version版本
      *
      * @param context
      */
      public SQLiteDBUtil(Context context) {
            super (context, NAME , null , VERSION );
            // TODO Auto-generated constructor stub
     }
      //
      @Override
      public void onCreate(SQLiteDatabase db) {//执行创建数据表的sql语句
           String userSQL = "create table practice"
                      + "(id integer primary key autoincrement,"
                      + "name varchar(5),"
                      + "age integer)" ;
           db.execSQL(userSQL);
     }
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
     }
}

主布局就是三个按钮:
activity_main.xml
< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:orientation = "vertical"
    tools:context = ".MainActivity" >
    < Button
        android:id = "@+id/add"
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:text = "添加数据" />
    < Button
        android:id = "@+id/update"
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:text = "更新数据" />
    < Button
        android:id = "@+id/delete"
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:text = "删除数据" />
</ LinearLayout >

MainActivity.java  
package easy.practice_sql;
import java.util.Date ;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor ;
import android.database.sqlite.SQLiteDatabase ;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText ;
import android.widget.TextView ;
import android.widget.Toast ;
//15893028654
public class MainActivity extends Activity implements OnClickListener {
      private Button add , update , delete ;
      protected void onCreate(Bundle savedInstanceState) {
            super .onCreate(savedInstanceState);
           setContentView(R.layout. activity_main );
           initView();
           initAction();
     }
      private void initView() {
            add = (Button) findViewById(R.id. add );
            update = (Button) findViewById(R.id. update );
            delete = (Button) findViewById(R.id. delete );
     }
      private void initAction() {
            add .setOnClickListener( this );
            update .setOnClickListener( this );
            delete .setOnClickListener( this );
     }
      @Override
      public void onClick(View v) {
            switch (v.getId()) {
            case R.id. add :
                startActivity( new Intent(getApplicationContext(), AddActivity. class ));
                 break ;
            case R.id. update :
                startActivity( new Intent(getApplicationContext(),
                           UpdateActivity. class ));
                 break ;
            case R.id. delete :
                startActivity( new Intent(getApplicationContext(),
                           DeleteActivity. class ));
                 break ;
            default :
                 break ;
           }
     }
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
           getMenuInflater().inflate(R.menu. main , menu);
            return true ;
     }
}

AddActivity.java       增加数据界面
package easy.practice_sql;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent ;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AddActivity extends Activity implements OnClickListener {
      private EditText add_name , add_age ;
      private Button btn_add ;
      @Override
      protected void onCreate(Bundle savedInstanceState ) {
            super .onCreate( savedInstanceState );
           setContentView(R.layout. activity_add );
           initView();
           initAction();
     }
      private void initView() {
            add_name = (EditText) findViewById(R.id. add_name );
            add_age = (EditText) findViewById(R.id. add_age );
            btn_add = (Button) findViewById(R.id. btn_add );
     }
      private void initAction() {
            btn_add .setOnClickListener( this );
     }
      @Override
      public void onClick(View v) {
            switch (v.getId()) {
            case R.id. btn_add :
                 if ( "" .equals( add_name .getText().toString())
                           || "" .equals( add_age .getText().toString())) {
                      Toast. makeText (getApplicationContext(), "请您输入姓名和年龄哦" ,
                                 Toast. LENGTH_SHORT ).show();
                } else {
                      doInsert();
                }
                 break ;
            default :
                 break ;
           }
     }
      public void doInsert() {
           String getName = add_name .getText().toString();
            int getAge = Integer. valueOf (( add_age .getText().toString()));
            //获取数据库操作对象
           SQLiteDBUtil db = new SQLiteDBUtil(getApplicationContext());
           SQLiteDatabase sd = db.getWritableDatabase();
            //创建 sql 语句
           String sql = "insert into practice values(null,?,?)" ;
            //执行 sql 语句
           sd.execSQL(sql, new Object[] { getName, getAge });
            //关闭数据库
           db.close();
           Toast. makeText (getApplicationContext(), "添加数据成功!" , Toast. LENGTH_SHORT )
                      .show();
            add_name .setText( "" );
            add_age .setText( "" );
     }
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
           getMenuInflater().inflate(R.menu. add , menu);
            return true ;
     }
}

UpdateActivity.java  更新数据界面
package easy.practice_sql;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent ;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class UpdateActivity extends Activity implements OnClickListener {
      private EditText id , update_name , update_age ;
      private TextView updatae_showAll ;
      private Button btn_update ;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
            super .onCreate(savedInstanceState);
           setContentView(R.layout. activity_update );
           initView();
           initAction();
     }
      private void initView() {
            id = (EditText) findViewById(R.id. id );
            update_name = (EditText) findViewById(R.id. update_name );
            update_age = (EditText) findViewById(R.id. update_age );
            updatae_showAll = (TextView) findViewById(R.id. update_showAll );
            btn_update = (Button) findViewById(R.id. btn_update );
           doQuery();
     }
      private void initAction() {
            btn_update .setOnClickListener( this );
     }
      @Override
      public void onClick(View v) {
            switch (v.getId()) {
            case R.id. btn_update :
                doUpdate();
                 break ;
            default :
                 break ;
           }
     }
      public void doQuery() {
            // **************************************************************
            // 将所有的信息展示在文本框里
           String s = "" ;
           SQLiteDBUtil db = new SQLiteDBUtil(getApplicationContext());
           SQLiteDatabase sd = db.getReadableDatabase();
           String sql = "select * from practice" ;
           Cursor cursor = sd.rawQuery(sql, null );
            while (cursor.moveToNext()) {
                s = s + "id:" + cursor.getInt(0) + "\t姓名:" + cursor.getString(1)
                           + "\t年龄:" + cursor.getInt(2) + "\n" ;
           }
           db.close();
           cursor.close();
            updatae_showAll .setText(s);
            // **************************************************************
     }
      public void doUpdate() {
           String getName = update_name .getText().toString();
           String getAge = update_age .getText().toString();
           String getId = id .getText().toString();
            int age = Integer. valueOf (getAge);
            int id = Integer. valueOf (getId);
           SQLiteDBUtil db = new SQLiteDBUtil(getApplicationContext());
           SQLiteDatabase sd = db.getWritableDatabase();
           String sql = "update practice set name= ?" + " ,age= ? where id=?" ;
           sd.execSQL(sql, new Object[] { getName, age, id });
            // 这里进行关闭
           db.close();
           Toast. makeText (getApplicationContext(), "修改成功了哦!" , Toast. LENGTH_SHORT )
                      .show();
     }
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
           getMenuInflater().inflate(R.menu. update , menu);
            return true ;
     }
}

DeleteActivity.java    删除数据界面
package easy.practice_sql;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent ;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class DeleteActivity extends Activity implements OnClickListener {
      private EditText text ;
      private TextView showAll ;
      private Button btn_delete ;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
            super .onCreate(savedInstanceState);
           setContentView(R.layout. activity_delete );
           initView();
           initAction();
     }
      private void initView() {
            text = (EditText) findViewById(R.id. text );
            btn_delete = (Button) findViewById(R.id. btn_delete );
            showAll = (TextView) findViewById(R.id. showAll );
            // 显示所有的信息
           doQuery();
     }
      private void initAction() {
            btn_delete .setOnClickListener( this );
     }
      @Override
      public void onClick(View v) {
            switch (v.getId()) {
            case R.id. btn_delete :
                String getText = text .getText().toString();
                 if (! "" .equals(getText)) { // 如果文本框里用户输入了信息,就进行操作。(这里只考虑用户输入所要删除的id,数据库里都有
                      doDelete(getText);
                } else {
                      Toast. makeText (getApplicationContext(), "请输入所要删除的姓名" ,
                                 Toast. LENGTH_SHORT ).show();
                }
                 break ;
            default :
                 break ;
           }
     }
      public void doDelete(String name) {
           SQLiteDBUtil db = new SQLiteDBUtil(getApplicationContext());
           SQLiteDatabase sd = db.getWritableDatabase();
            // 在这里,若是有字符串的话,,前后需要加单引号
           String sql = "delete from practice where name = " + "'" + name + "'" ;
           sd.execSQL(sql);
            // 这里进行关闭
           db.close();
           Toast. makeText (getApplicationContext(), "删除成功" ,
                      Toast. LENGTH_SHORT ).show();
     }
      public void doQuery() {
            // **************************************************************
            // 将所有的信息展示在文本框里
           String s = "" ;
           SQLiteDBUtil db = new SQLiteDBUtil(getApplicationContext());
           SQLiteDatabase sd = db.getReadableDatabase();
           String sql = "select * from practice" ;
           Cursor cursor = sd.rawQuery(sql, null );
            while (cursor.moveToNext()) {
                s = s + "id:" + cursor.getInt(0) + "\t姓名:" + cursor.getString(1)
                           + "\t年龄:" + cursor.getInt(2) + "\n" ;
           }
           db.close();
           cursor.close();
            showAll .setText(s);
            // **************************************************************
     }
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
           getMenuInflater().inflate(R.menu. delete , menu);
            return true ;
     }
}


猜你喜欢

转载自blog.csdn.net/easy_purple/article/details/80920369
今日推荐