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();
    }
}

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