SQLite简单运用

来源:互联网 发布:如何描述一个java项目 编辑:程序博客网 时间:2024/06/06 11:36
数据库,简单来说就四个字:增、删、改、查
准备工作:
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();    }}

0 0