數據庫,簡單來說就四個字:增、刪、改、查
準備工作:
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();
}
}