package com.itheima74.databaseday01;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.itheima74.databaseday01.dao.InfoDao;
import com.itheima74.databaseday01.domain.InfoBean;
import java.util.ArrayList;
import static com.itheima74.databaseday01.R.id.bt_delete;
import static com.itheima74.databaseday01.R.id.bt_insert;
import static com.itheima74.databaseday01.R.id.bt_query;
import static com.itheima74.databaseday01.R.id.bt_update;
/**
* 1.创建一个私有数据
* 2.完成对数据库的增删改查
* 3.使用listview展示查询结果
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private InfoDao mInfoDao;
private ListView lv;
private ArrayList<InfoBean> mList;
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInfoDao = new InfoDao(this);
initUI();
initData();
initAdapter();
}
private void initData() {
mList = mInfoDao.query();
}
private void initAdapter() {
mAdapter = new MyAdapter();
lv.setAdapter(mAdapter);
}
private void initUI() {
lv = (ListView) findViewById(R.id.lv);
findViewById(bt_insert).setOnClickListener(this);
findViewById(bt_delete).setOnClickListener(this);
findViewById(bt_update).setOnClickListener(this);
findViewById(bt_query).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case bt_insert:
InfoBean infoBean = new InfoBean("习大大", "3000一个月");
boolean insert = mInfoDao.insert(infoBean);
if (insert) {
Toast.makeText(this, "insert success", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "insert fail", Toast.LENGTH_SHORT).show();
}
break;
case bt_delete:
int delete = mInfoDao.delete();
Toast.makeText(this, "成功删除" + delete + "行", Toast.LENGTH_SHORT).show();
break;
case bt_update:
InfoBean infoBean1 = new InfoBean("习大大", "10000一个月");
int update = mInfoDao.update(infoBean1);
Toast.makeText(this, "成功更新" + update + "行", Toast.LENGTH_SHORT).show();
break;
case bt_query:
mList = mInfoDao.query();
mAdapter.notifyDataSetChanged();
Toast.makeText(this, "查询成功", Toast.LENGTH_SHORT).show();
break;
}
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return mList.size();
}
@Override
public InfoBean getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = View.inflate(getApplicationContext(), R.layout.listview_item, null);
holder.tv_id = (TextView) convertView.findViewById(R.id.tv_id);
holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
holder.tv_money = (TextView) convertView.findViewById(R.id.tv_money);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
InfoBean infoBean = getItem(position);
holder.tv_id.setText(infoBean._id + "");
holder.tv_name.setText(infoBean.name);
holder.tv_money.setText(infoBean.money);
return convertView;
}
}
private static class ViewHolder {
TextView tv_id;
TextView tv_name;
TextView tv_money;
}
}
package com.itheima74.databaseday01.domain;
public class InfoBean {
public String _id;
public String name;
public String money;
public InfoBean() {
}
public InfoBean(String name, String money) {
this.name = name;
this.money = money;
}
@Override
public String toString() {
return "InfoBean{" +
"_id=" + _id +
", name='" + name + '\'' +
", money='" + money + '\'' +
'}';
}
}
package com.itheima74.databaseday01.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.itheima74.databaseday01.sqliteopenhelp.MySqliteOpenHelper;
import com.itheima74.databaseday01.domain.InfoBean;
import java.util.ArrayList;
public class InfoDao {
private MySqliteOpenHelper mSqliteOpenHelper;
public InfoDao(Context context) {
mSqliteOpenHelper = new MySqliteOpenHelper(context);
}
public boolean insert(InfoBean infoBean) {
SQLiteDatabase db = mSqliteOpenHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("name", infoBean.name);
values.put("money", infoBean.money);
long insert = db.insert("info", null, values);
if (insert != -1) {
return true;
} else {
return false;
}
}
/**
* 全部删除
*/
public int delete() {
SQLiteDatabase db = mSqliteOpenHelper.getReadableDatabase();
int delete = db.delete("info", null, null);
db.close();
return delete;
}
public int update(InfoBean infoBean) {
SQLiteDatabase db = mSqliteOpenHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("money", infoBean.money);
int update = db.update("info", values, "name=?", new String[]{infoBean.name});
db.close();
return update;
}
public ArrayList<InfoBean> query() {
SQLiteDatabase db = mSqliteOpenHelper.getReadableDatabase();
InfoBean infoBean = new InfoBean();
ArrayList<InfoBean> list = new ArrayList<>();
Cursor cursor = db.query("info", new String[]{"_id","name","money"}, null, null, null, null, null);
while (cursor != null && cursor.moveToNext()) {
infoBean._id = cursor.getString(0);
infoBean.name = cursor.getString(1);
infoBean.money = cursor.getString(2);
list.add(infoBean);
System.out.println(infoBean);
}
db.close();
return list;
}
}
package com.itheima74.databaseday01.sqliteopenhelp;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqliteOpenHelper extends SQLiteOpenHelper {
public MySqliteOpenHelper(Context context) {
super(context, "info.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),money varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}