25/9/8/SQLite/ContentProvider
2015-09-08 18:35
691 查看
SQLite
ContentProvider
Android是对SQLite3进行操作的,其操作步骤一般是:
1.首先建立一个Java类继承于SQLiteOpenHelper重写里面的方法2.在onCreate方法中用sql语句创建一个表
3.在MainActivity中声明这个类,然后调用getWritableDatabase()方法生成一个SQLiteDatabase对象,然后利用这个对象对创建的表进行增删改查的操作
4.代码实现
public class SqliteOpenHelperTest extends SQLiteOpenHelper { public SqliteOpenHelperTest(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } public SqliteOpenHelperTest(Context context,String name){ this(context,name,null,1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists user (id integer primary key autoincrement ,name varchar(20),password varchar(20)) "); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } private SQLiteDatabase db; SqliteOpenHelperTest sqlite=new SqliteOpenHelperTest(getApplicationContext(),"SQL_FIRST_DB.db"); db=sqlite.getWritableDatabase(); case R.id.sql_button_insert: ContentValues value=new ContentValues(); value.put("name",mEditTextUser.getText().toString()); value.put("password",mEditTextPassword.getText().toString()); db.insert("user",null,value); break; case R.id.sql_button_updata: ContentValues value1=new ContentValues(); value1.put("password","0123456"); db.update("user",value1,"name=?",new String[]{"Jinx"}); break; case R.id.sql_button_delete: db.delete("user","name=?",new String[]{"Jinx"}); break; case R.id.sql_button_query: // Cursor cursor=db.rawQuery("select * from user", null); Cursor cursor=db.query("user",null,null,null,null,null,"id DESC","2,4");//2和4 分别表示偏移量和数量DESC表示倒序的方式排列 cursor.moveToFirst(); while (!cursor.isAfterLast()){ String name=cursor.getString(cursor.getColumnIndex("name")); String password=cursor.getString(cursor.getColumnIndex("password")); Log.d("cursor","用户名为:"+name+"密码为:"+password); cursor.moveToNext(); } break;
ContentProvider主要用于在不同的应用程序之间实现数据共享的功能,它的基本用法是:
private ArrayAdapter<String> mAdapter; List<String> mContactsList=new ArrayList<>(); mListView= (ListView) findViewById(R.id.contacts_listview); mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mContactsList); mListView.setAdapter(mAdapter); readContacts(); private void readContacts() { Cursor cursor=null; cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null); while (cursor.moveToNext()){ String displyName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); mContactsList.add(displyName+"\n"+number); } }
相关文章推荐
- 关于SqlBulkCopy的测试
- go database/sql包sql.Open不是长连接
- sql中top使用方法
- SQL Server 2016 CTP2.3 的关键特性总结
- [转]Sql Server 2005中的架构(Schema)、用户(User)、登录(Login)和角色(Role)
- sql server 2008 中的架构(schame)理解
- SQL SERVER 插入数据获取自增ID,SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的比较
- 安装plsql developer 11
- SqlBulkCopy批量数据插入
- PLSQL Developer使用技巧整理
- zabbix监控mysql
- go-xorm使用mssql的小实例
- godbc中使用mssql的小实例
- PL/SQL中LOOP循环控制语句
- SQL Server 2016 CTP2.3 的关键特性总结
- PL/SQL Developer如何连接64位的Oracle图解
- openfire配置标准数据库(mysql)
- 2015年9月2日 安装PL/SQLDeveloper
- MySQL 高可用架构在业务层面的分析研究
- PL/SQL DEVELOPER执行计划的查看