安卓中实现对SQLITE数据表的增删改查

直接上代码

MainActiviy.java

package com.example.sqllitcache;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

	ListView lv;
	Button submit;
	EditText et;
	SQLiteDatabase dbwrite ;
	Dbhelper dbhelper;
	ArrayAdapter <String> adapter;
	Cursor c;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv=(ListView) findViewById(R.id.listView1);
        submit=(Button) findViewById(R.id.button1);
        et=(EditText) findViewById(R.id.autoCompleteTextView1);
        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        lv.setAdapter(adapter);
        dbhelper=new Dbhelper(this);
        dbwrite=dbhelper.getWritableDatabase();
        getData();
        //点击提交
        submit.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String newData=et.getText().toString();
				addData(newData);
			}
		});
        //长按列表项,修改数据
        lv.setOnItemLongClickListener(new OnItemLongClickListener() {
			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
					final int position, long arg3) {
				// TODO Auto-generated method stub

				new AlertDialog.Builder(MainActivity.this).setPositiveButton("我确定修改",new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						updateData(position);
					}
				}).show();
				return false;
			}
		});
        //短按列表项删除数据
        lv.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> arg0, View arg1, int position,
					long arg3) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this, position+"", 0).show();
				deleteData(position);
			}
		});
    }

    //添加数据的执行函数,添加到本地数据库,并提示更新listtview
    void addData(String newData)
    {
    	//添加到本地数据库
    	ContentValues content=new ContentValues();
    	String putdata=et.getText().toString();
        content.put("data", putdata);
        dbwrite.insert("datatable",null, content);
        getData();
    }

    //删除一条数据
    void deleteData(int position)
    {
    	c.moveToPosition(position);
		int id=c.getInt(c.getColumnIndex("_id"));
		dbwrite.delete("datatable", "_id=?",  new String[]{id+""} );
		getData();
    }
    //修改一条数据
    void updateData(int position)
    {
    	c.moveToPosition(position);
		ContentValues cv=new ContentValues();
		cv.put("data", "changed");
		int id=c.getInt(c.getColumnIndex("_id"));
		dbwrite.update("datatable", cv, "_id=?", new String [] {id+""});
        getData();
    }
    //获取数据
    void getData()
    {
    	c= dbwrite.query("datatable", null, null, null, null, null, null);
    	adapter.clear();
    	 //读取本地数据库
        while(c.moveToNext())
        {

        	String data=c.getString(c.getColumnIndex("data"));
        	int id=c.getInt(c.getColumnIndex("_id"));
        	adapter.add(data+":"+id);
        	System.out.println(data+": "+id);
        }
        adapter.notifyDataSetChanged();
    }
}

Dbhelper.java

package com.example.sqllitcache;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class Dbhelper extends SQLiteOpenHelper {

	public Dbhelper(Context context ) {
		super(context, "mydb",null, 1);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL("CREATE TABLE datatable ("+
		           "_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
		           "data String DEFAULT \"\")"  );
	}

	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		// TODO Auto-generated method stub

	}

}
时间: 2024-10-07 03:16:57

安卓中实现对SQLITE数据表的增删改查的相关文章

AngularJS中使用$http对MongoLab数据表进行增删改查

本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load Course</button> <button ng-click="toggleAddCourse(true)">Add New Course</button> <ng-includce src="'course_list.html'&q

mysql 数据表的增删改查 目录

mysql 表的增删改查 mysql 表的增删改查 修改表结构 mysql 复制表 mysql 删除表 原文地址:https://www.cnblogs.com/mingerlcm/p/10502647.html

php学习day11---数据库(3)数据表的增删改查

今天我们学习了数据表的相关操作,以下是笔记. 一.数据操作语言 1.增添数据 在数据表中添加数据有多种的语法形式 形式1:insert [into] table_name [(字段1,字段2,字段3......)] values (值1,值2,值3......),(......),(......)......;  形式2:replace [into] table_name [(字段1,字段2,字段3......)] values (值1,值2,值3......),(......),(......

C# 创建Access数据库及数据表的增删改查

//动态库引用 //Microsoft ActiveX Data Objects 6.0 Libraryy //Microsoft ADO Ext. 6.0 for DDL and Securty //可以在动态库管理器的COM中找到,但实际上就是ADODB.DLL和ADOX.DLL using System.Data.OleDb; using ADOX; 1 class ADOXer 2 { 3 /// <summary> 4 /// 激活Access数据库(创建或打开) 5 /// <

ADO.NET实现对SQL Server数据库的增删改查

了解了上一篇的ADO.NET简介,我们就可以来对数据库进行增删改查等基本操作了!下面是每种操作的具体实现. 先在自定义类的头部定义好数据库连接对象和连接字符串: 1 string connectionString = "Data Source=SC-201607131829;Initial Catalog=Animal;Integrated Security=True"; 2 3 SqlConnection conn; 1.数据库的查询操作,返回一个DataSet 1 public D

SQLite实现基本的增删改查功能

SQLite实现基本的增删改查功能 还是向之前一样,先介绍功能,再介绍所用知识点,然后贴下代码. 一,SQLite简介: SQLite,是一款轻型的数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式开发中.   SQLite的数据类型:Typelessness(无类型), 可以保存任何类型的数据到你所想要保存的任何表的任何列中. 但它又支持常见的类型比如: NULL, VARCHAR, TEXT, INTEGER, BLOB, CLOB...等. 唯一的

ORM 实现数据库表的增删改查

这次通过反射技术来实现一下数据库表的增删改查对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 注:引用时约束了以下几点: 数据库表的表名与类的类名一致 数据库字段名和类字段名一致 自增字段的访问权限为private其余字段都为public 注:如果用的是MySql数据库,有提供好的MySqlhelper非MySql数据库可以参考我写好的SqlHelper SqlHelper参考位置:http://www.cnblogs.c

spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

  1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建表的权限,(2):有表空间 SQL> desc t4; 名称                                      是否为空? 类型 ----------------------------------------- -------- ------------------------

web day19 Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作),分页

Service事务 DAO中不是处理事务的地方,因为DAO中的每个方法都是对数据库的一次操作 在Service中不应该出现Connection,它应该只在DAO中出现, 因为它是JDBC的东西,JDBC的东西是用来连接数据库的 修改JdbcUtils 我们把对事务的开启和关闭放到JdbcUtils中,在Service中调用JdbcUtils的方法来完成事务的处理, 但在Service中就不会再出现Connection这一"禁忌"了. 代码 public class JdbcUtils