通过sqliteDatabase 来访问sqlite数据库
----Main.java
publicclassMainextendsActivity{ sqliteDatabasedb; ListVIEwListVIEw; EditTexteditText1,editText2;//要添加的标题和context buttonbutton; @OverrIDe protectedvoIDonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); ListVIEw=(ListVIEw)findVIEwByID(R.ID.ListVIEw1); editText1=(EditText)findVIEwByID(R.ID.editText1); editText2=(EditText)findVIEwByID(R.ID.editText2); button=(button)findVIEwByID(R.ID.button1); ///data/data/com.example.dbtest/files--/my.db3 db=sqliteDatabase.openorCreateDatabase(this.getfilesDir().toString() +"/my.db3",null); button.setonClickListener(newOnClickListener(){ @OverrIDe publicvoIDonClick(VIEwv){ Stringstr1=editText1.getText().toString(); Stringstr2=editText2.getText().toString(); try{ insertToDB(db,str1,str2); Cursorcursor=db.rawquery("select*fromnews_info",null); inflateListVIEw(cursor); }catch(sqliteExceptione){ db.execsql("createtablenews_info(_IDintegerprimarykeyautoincrement," +"news_Titlevarchar(50)," +"news_contentvarchar(255))"); insertToDB(db,str2); Cursorcursor=db.rawquery("selecte*fromnews_info",null); inflateListVIEw(cursor); } } }); } privatevoIDinsertToDB(sqliteDatabasedb,Stringstr1,Stringstr2){ db.execsql("insertintonews_infovalues(null,?,?)",newString[]{ str1,str2}); } privatevoIDinflateListVIEw(Cursorcursor){ SimpleCursorAdapteradapter=newSimpleCursorAdapter(Main.this,R.layout.item,cursor,newString[]{"news_Title","news_content"},newint[]{R.ID.textVIEw1,R.ID.textVIEw2},CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); ListVIEw.setAdapter(adapter); } @OverrIDe protectedvoIDonDestroy(){ super.onDestroy(); if(db!=null&&db.isopen()){ db.close(); } }}
SimpleCursorAdapter封装Cursor时,要求数据表的主键列的列名为 _ID 。因为SimpleCursorAdapter只能识别 列名为
_ID的主键。否则会报错。
同java中的 *** 作JDBC一样,数据库最后也要关闭 db.close(); 来回收资源。
---main.xml
<relativeLayoutxmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}"><EditTextandroID:ID="@+ID/editText1"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:layout_alignParentleft="true"androID:layout_alignParenttop="true"androID:ems="10"><requestFocus/></EditText><EditTextandroID:ID="@+ID/editText2"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:layout_alignParentleft="true"androID:layout_below="@+ID/editText1"androID:ems="10"/><buttonandroID:ID="@+ID/button1"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:layout_alignParentleft="true"androID:layout_below="@+ID/editText2"androID:text="插入数据"/><ListVIEwandroID:ID="@+ID/ListVIEw1"androID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:layout_alignParentleft="true"androID:layout_below="@+ID/button1"></ListVIEw></relativeLayout>
ListevIEw 每个子项的布局文件 item.xml:
<?xmlversion="1.0"enCoding="utf-8"?><relativeLayoutxmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"><TextVIEwandroID:ID="@+ID/textVIEw1"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:layout_alignParentleft="true"androID:layout_alignParenttop="true"androID:text="TextVIEw"/><TextVIEwandroID:ID="@+ID/textVIEw2"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:layout_alignParenttop="true"androID:layout_marginleft="20dp"androID:layout_toRightOf="@+ID/textVIEw1"androID:text="TextVIEw"/></relativeLayout>
运行效果:
总结以上是内存溢出为你收集整理的SQLitedatabase实现访问sqlite全部内容,希望文章能够帮你解决SQLitedatabase实现访问sqlite所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)