SQLite簡單運用

數據庫,簡單來說就四個字:增、刪、改、查
準備工作:
1
public class Constant {
    public static class NewsTable {
        public static final String TBL_NAME = "NEWS";
        public static final String TBL_COL_TITLE = "NEWSTITLE";
        public static final String TBL_COL_IMG = "NEWSIMG";
        public static final String TBL_COL_SRC = "NEWSSRC";
        public static final String TBL_COL_COMM = "NEWSCOMM";
        public static final String TBL_COL_DATE = "NEWSDATE";

        public static String getCreateTableSQL () {
            String sql = "create table if not exists "
                    + TBL_NAME
                    + "("
                    + " _id integer primary key autoincrement ,"
                    + TBL_COL_TITLE + " text,"
                    + TBL_COL_IMG + " integer,"
                    + TBL_COL_SRC + " text,"
                    + TBL_COL_COMM + " text,"
                    + TBL_COL_DATE + " varchar(50)"
                    + ")";
            return sql;
        }
    }
}
2.
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.jredu.study.util.Constant;

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
    private static final String DB_NAME = "new.db"; //數據庫名稱
    private static final int VERSION = 1; // 數據庫版本號


    public MySQLiteOpenHelper(Context context) {
        super(context, DB_NAME, null, VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = Constant.NewsTable.getCreateTableSQL();
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table " + Constant.NewsTable.TBL_NAME);
        onCreate(db);
    }
}
3.
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.jredu.study.R;
import com.jredu.study.util.Constant;

public class SQLileActivity extends AppCompatActivity {
    Button insertData;
    Button updertData;
    Button deleteData;
    Button queryData;
    EditText title;
    EditText img;
    EditText src;
    EditText comm;
    EditText date;
    EditText updeter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqlile);
        title = (EditText) findViewById(R.id.title);
        img = (EditText) findViewById(R.id.img);
        src = (EditText) findViewById(R.id.src);
        comm = (EditText) findViewById(R.id.comm);
        date = (EditText) findViewById(R.id.date);
        updeter = (EditText) findViewById(R.id.update);
        insertData = (Button) findViewById(R.id.insertData);
        insertData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                insertData();
            }
        });
        queryData = (Button) findViewById(R.id.queryData);
        queryData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                queryData();
            }
        });
        deleteData = (Button) findViewById(R.id.deleteData);
        deleteData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                deleteData();
            }
        });
        updertData = (Button) findViewById(R.id.updateData);
        updertData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                upderData();
            }
        });
    }
//向數據庫中保存內容
    public void insertData (){
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Constant.NewsTable.TBL_COL_TITLE,title.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_IMG,img.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_SRC,src.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_COMM,comm.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_DATE,date.getText().toString());
        sqLiteDatabase.insert(Constant.NewsTable.TBL_NAME,null,contentValues);
        sqLiteDatabase.close();//數據庫操作完成後一定要關閉數據庫!!!
        Toast.makeText(getApplication(),"保存成功",Toast.LENGTH_SHORT).show();
    }
    public void queryData(){
        //調用幫助類的構造函數  去創建數據庫
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        //調用幫助類的onCreate  去創建表
        SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getReadableDatabase();
        //使用sqLiteDatabase 的query方法,返回數據查詢結果集
        Cursor cursor = sqLiteDatabase.query(
                Constant.NewsTable.TBL_NAME,
                null,
                Constant.NewsTable.TBL_COL_TITLE + " = ?" ,
                new String[]{title.getText().toString()},
                null,
                null,
                null
                );
        //查詢對應數據的時候,一定要先獲取列的索引值
        while (cursor.moveToNext()) {
            int titleIndex = cursor.getColumnIndex(Constant.NewsTable.TBL_COL_TITLE);
            int imgIndex = cursor.getColumnIndex(Constant.NewsTable.TBL_COL_IMG);
            int commIndex = cursor.getColumnIndex(Constant.NewsTable.TBL_COL_COMM);
            int dataIndex = cursor.getColumnIndex(Constant.NewsTable.TBL_COL_DATE);
            int srcIndex = cursor.getColumnIndex(Constant.NewsTable.TBL_COL_SRC);
            String titles = cursor.getString(titleIndex);
            String imgs = cursor.getString(imgIndex);
            String comms = cursor.getString(commIndex);
            String datas = cursor.getString(dataIndex);
            String srcs = cursor.getString(srcIndex);
            title.setText(titles);
            img.setText(imgs);
            comm.setText(comms);
            date.setText(datas);
            src.setText(srcs);
            Toast.makeText(getApplication(),titles+" "+imgs+" "+" "+comms+" "+datas+" "+srcs,Toast.LENGTH_SHORT).show();
        }
        //數據查詢完畢後,1.關閉結果集  2.關閉sqLiteDatabase
        cursor.close();
        sqLiteDatabase.close();
        Toast.makeText(getApplication(),"查詢完畢",Toast.LENGTH_SHORT).show();
    }
    public void deleteData(){
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase();
        sqLiteDatabase.delete(
                Constant.NewsTable.TBL_NAME,
                Constant.NewsTable.TBL_COL_TITLE+" = ?",
                new String[]{title.getText().toString()}
        );
        sqLiteDatabase.close();
        Toast.makeText(getApplication(),"刪除成功",Toast.LENGTH_SHORT).show();
    }
    public void upderData(){
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Constant.NewsTable.TBL_COL_TITLE,title.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_IMG,img.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_SRC,src.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_COMM,comm.getText().toString());
        contentValues.put(Constant.NewsTable.TBL_COL_DATE,date.getText().toString());
        sqLiteDatabase.update(
                Constant.NewsTable.TBL_NAME,
                contentValues,
                Constant.NewsTable.TBL_COL_TITLE+" = ?",
                new String[]{updeter.getText().toString()}
        );
        sqLiteDatabase.close();
        Toast.makeText(getApplication(),"修改成功",Toast.LENGTH_SHORT).show();
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章