android sqlitedatabase的使用

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) {

    }
}





猜你喜欢

转载自blog.csdn.net/zhu6201976/article/details/63826784
今日推荐