在Android开始的过程中,有时候需要保存大量相似结构的数据,这个时候需要用到数据库,而Google工程师在内部封装了一个轻量级的数据库——SQLite
1.创建MySql
继承SQLiteOpenHelper
public class myhelper extends SQLiteOpenHelper {
public myhelper(Context context) {
super(context, "bb.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表
String sq="create table login(id INTEGER PRIMARY KEY AUTOINCREMENT," +
"pic_url text,news_title text,news_summary text,imagee,text)";
db.execSQL(sq);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
2.创建Dao层
public class dao {
private final SQLiteDatabase db;
public dao(Context context) {
myhelper myhelper = new myhelper(context);
db = myhelper.getWritableDatabase();
}
//向数据库添加
public Long add(String table, String nullColumnHack, ContentValues values){
***//添加要加values(切记)***
return db.insert(table, nullColumnHack, values);
}
//数据库查询
public Cursor query(String table, String[] columns,
String selection, String[] selectionArgs, String groupBy,
String having, String orderBy){
return db.query( table, columns,
selection, selectionArgs, groupBy,
having, orderBy);
}
3.在MainActivity中写添加方法
//首先实例化一个Dao层
Dao d = new dao();
//然后用For循环把数据存到数据库中
for (int i=0;i<data.size();i++){
ContentValues values=new ContentValues();
values.put("pic_url",data.get(i).getPic_url());
values.put("news_title",data.get(i).getNews_title());
values.put("news_summary",data.get(i).getNews_summary());
values.put("imagee",data.get(i).getPic_url());
d.add("login",null,values);
}
//这是把数据从数据库中查询出来
Cursor login = d.query("login", null, null, null, null, null, null);
if (login.moveToFirst()){
do {
String pic_url = login.getString(login.getColumnIndex("pic_url"));
String news_title = login.getString(login.getColumnIndex("news_title"));
String news_summary = login.getString(login.getColumnIndex("news_summary"));
String imagee = login.getString(login.getColumnIndex("imagee"));
list1.add(new JsonBean.DataBean(pic_url,news_title,news_summary,imagee));
}while (login.moveToNext());