AndroidSQlite增删查更新操作,listview展示带长按和代码注释

数据库助手

/**

 * @author: ZQF_DemoStyle
 * @类 说 明:
 * @version 1.0
 * @创建时间:2016-4-29 上午11:24:12
 * 
 */
public class MyDBOpenHelp extends SQLiteOpenHelper {
private static final String DB_NAME = "eteng.db";
public static final String TAble_NAME = "table_person";
private static final int DB_VERSION = 1;


public MyDBOpenHelp(Context context) {
super(context, DB_NAME, null, DB_VERSION);


}


// 数据库创建时调用
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table if not exists "
+ TAble_NAME
+ "(_id integer primary key autoincrement, name varchar(5), age integer(5),sex vachar(5))";
db.execSQL(sql);
System.out.println("创建数据库");
}


// 数据库升级,更新操作调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("数据库升级");
}


}


public class MainActivity extends Activity {
private MyDBOpenHelp dbOpenHelp;
private Button insert_btn, delete_btn, updata_btn, query_btn;
private ListView lv;
private ArrayList<PersonEntity> list = new ArrayList<PersonEntity>();
private PersonAdapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbOpenHelp = new MyDBOpenHelp(this);
SQLiteDatabase database = dbOpenHelp.getWritableDatabase();
database.close();
initView();
}


private void initView() {
lv = (ListView) findViewById(R.id.sqlite_lv);
insert_btn = (Button) findViewById(R.id.insert_btn);
delete_btn = (Button) findViewById(R.id.delete_btn);
updata_btn = (Button) findViewById(R.id.updata_btn);
query_btn = (Button) findViewById(R.id.query_btn);
// 插入数据
insert_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db = dbOpenHelp.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 20);
values.put("sex", "男");
db.insert(dbOpenHelp.TAble_NAME, null, values);
values.put("name", "小丽");
values.put("age", 12);
values.put("sex", "女");
db.insert(dbOpenHelp.TAble_NAME, null, values);
db.close();
query();
}
});


// 删除数据
delete_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String detele_name = "小丽";
delete(detele_name);
}
});


// 更新数据
updata_btn.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
updata();
}


});
// 查询数据
query_btn.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
query();
}
});


// 长按操作
lv.setOnItemLongClickListener(new OnItemLongClickListener() {


@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
final int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setMessage("删除此条记录");
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {


@Override
public void onClick(DialogInterface dialog,
int which) {
}
});
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {


@Override
public void onClick(DialogInterface dialog,
int which) {
String name = list.get(position).getName();
delete(name);
}
});
builder.show();
return false;
}
});
}


// 执行修改数据的操作
// table:表名
// 更新的数据
// whereClause:修改条件
// 更新操作
private void updata() {
SQLiteDatabase db = dbOpenHelp.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "侣哥哥");
values.put("age", 15);
values.put("sex", "男");
db.update(dbOpenHelp.TAble_NAME, values, "name=?",
new String[] { "张三" });
query();
}


// 删除一条数据
// table:表名
// whereClause:删除条件
// whereArgs:满足删除的条件
private void delete(String detele_name) {
SQLiteDatabase db = dbOpenHelp.getWritableDatabase();
db.delete(dbOpenHelp.TAble_NAME, "name=?", new String[] { detele_name });
db.close();
query();


}


// 执行数据库的查询操作
// table:表名
// columns:被查询的列(字段),可以有很多个
// selection:查询条件,null代表没有条件,即全部查询
// selectionArgs:满足查询条件
// groupBy:指定分组(不常用)
// having:分组筛选数据关键字(不常用)
// orderBy:排序
private void query() {
list.clear();
String name = null;
String sex = null;
SQLiteDatabase db = dbOpenHelp.getWritableDatabase();
Cursor cursor = db.query(dbOpenHelp.TAble_NAME, new String[] { "name",
"sex" }, null, null, null, null, null);
int nameIndex = cursor.getColumnIndex("name");
int sexindex = cursor.getColumnIndex("sex");
while (cursor.moveToNext()) {
name = cursor.getString(nameIndex);
sex = cursor.getString(sexindex);
PersonEntity entity = new PersonEntity();
entity.setName(name);
entity.setSex(sex);
list.add(entity);
}
cursor.close();
db.close();
adapter = new PersonAdapter(this, list);
lv.setAdapter(adapter);
adapter.notifyDataSetChanged();
}


@Override
protected void onDestroy() {
super.onDestroy();
}
}
/**
 * @author: ZQF_DemoStyle
 * @类 说 明:
 * @version 1.0
 * @创建时间:2016-4-29 下午2:05:01
 * 
 */
public class PersonEntity {


private String name;
private int age;
private String sex;


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}


public String getSex() {
return sex;
}


public void setSex(String sex) {
this.sex = sex;
}

}


//适配器

public class PersonAdapter extends BaseAdapter {
private ArrayList<PersonEntity> list;
private LayoutInflater inflater;


public PersonAdapter(Context context, ArrayList<PersonEntity> list) {
this.list = list;
inflater = LayoutInflater.from(context);
}


@Override
public int getCount() {
return list != null ? list.size() : null;
}


@Override
public Object getItem(int position) {
return list.get(position);
}


@Override
public long getItemId(int position) {
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holde;
if (convertView == null) {
convertView = inflater.inflate(R.layout.person_layout, null);
holde = new ViewHolder();
holde.name = (TextView) convertView.findViewById(R.id.textView1);
holde.sex = (TextView) convertView.findViewById(R.id.textView2);
convertView.setTag(holde);
} else {
holde = (ViewHolder) convertView.getTag();
}


holde.name.setText(list.get(position).getName());
holde.sex.setText(list.get(position).getSex());


return convertView;
}


class ViewHolder {
TextView name;
TextView sex;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆流的剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值