设为首页 收藏本站
查看: 1369|回复: 0

[经验分享] SQLite数据库的简单实现

[复制链接]

尚未签到

发表于 2016-12-1 07:14:13 | 显示全部楼层 |阅读模式
  实现功能:
DSC0000.gif


   
  
  代码实现:
1、先实现SQLiteOpenHelper,以便系统可以自动创建数据库。
     
public class StringDBImpl extends SQLiteOpenHelper {       

public static final String DBNAME = "stringdb.db";       

public static final String TABLENAME ="stringtable";       

public static final String COLUMN1 = "textview";       


public StringDBImpl(Context context) {       

super(context, DBNAME, null, 1);       

}       

      

@Override       

public void onCreate(SQLiteDatabase db) {       

String sql ="CREATE TABLE " + TABLENAME + "(_id integer primary key autoincrement," + COLUMN1 + " text)";       

db.execSQL(sql);       

}       

      

@Override       

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {       

      

}       

      

}

      
   

2、Dao层,getWritableDatabasegetReadableDatabase可以立刻创建数据库,如果数据库已经存在,则得到数据库。调用其中的增删改查方法。
     
public class StringDao {       

StringDBImpl database = null;

      


public StringDao(Context context) {       

database = new StringDBImpl(context);       

}       

      

public long insert(String str) {       

SQLiteDatabase db = database.getWritableDatabase();       

ContentValues values = new ContentValues();       

values.put(StringDBImpl.COLUMN1, str);       

db.insert(StringDBImpl.TABLENAME, StringDBImpl.COLUMN1, values);       


}       

      

public Cursor query() {       

SQLiteDatabase db = database.getReadableDatabase();       

Cursor cursor = db.query(StringDBImpl.TABLENAME, null, null, null, null, null, null);       

return cursor;       

}       

      

public void delete(String str) {       

SQLiteDatabase db = database.getWritableDatabase();       

db.delete(StringDBImpl.TABLENAME, StringDBImpl.COLUMN1+"=?" , new String[]{str});       

}       

      

public void updata(ContentValues values,int _id) {       

SQLiteDatabase db = database.getWritableDatabase();       

db.update(StringDBImpl.TABLENAME, values, "_id=?", new String[]{String.valueOf(_id)});       

}       

}       


      
3、主界面。这里需要注意修改阶段。

     
public class MainActivity extends Activity {       

private StringDao dao;       

private EditText editText;       

private ListView listView;       

private Cursor c;       

private int _id;       

@Override       

public void onCreate(Bundle savedInstanceState) {       

super.onCreate(savedInstanceState);       

setContentView(R.layout.main);       

editText = (EditText) this.findViewById(R.id.edittext);       

listView = (ListView) this.findViewById(R.id.listview);       

      

dao = new StringDao(this);       

c = dao.query();

// ListView的显示,最好用系统自带的viewItem,当然也可以找到源文件,再自行修改       

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,       

android.R.layout.simple_list_item_1,       

c ,       

new String[] {StringDBImpl.COLUMN1},       

new int[] {android.R.id.text1});       

listView.setAdapter(adapter);       

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {       

@Override       

public void onItemClick(AdapterView> parent, View view,       

int position, long id) {       

c.moveToPosition(position);       

_id = c.getInt(0);       

editText.setText(c.getString(1));       

}       

      

});       

}       

      

@Override       

public boolean onCreateOptionsMenu(Menu menu) {       

menu.add(0, 0, 0, "增加");       

menu.add(0, 1, 0, "修改");       

menu.add(0, 2, 0, "删除");       

return super.onCreateOptionsMenu(menu);       

}       

      

//用ListView动态显示数据库数据,则需要动态更新adapter,这里使用的是simpleCursorAdapter,调用其requert()即可更新adapter;

@Override       

public boolean onOptionsItemSelected(MenuItem item) {       

switch (item.getItemId()) {       

case 0:       

String str = editText.getText().toString();       

dao.insert(str);       

c.requery();       

break;       

case 1:       

str = editText.getText().toString();       

ContentValues values = new ContentValues();       

values.put(StringDBImpl.COLUMN1, str);       

dao.updata(values, _id);       

c.requery();       

break;       

case 2:       

str = editText.getText().toString();       

dao.delete(str);       

c.requery();       

break;       

}       

return super.onOptionsItemSelected(item);       

}       

}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-307814-1-1.html 上篇帖子: Android中的sqlite中表的创建 下篇帖子: 【Android学习笔记】SQLite数据库存储
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表