学习笔记:1)Cursor是SQLite 数据库查询返回的行数集合
2)SQLiteDatabase的execSQL()方法可执行任意的SQL语句 但是因为其没有返回值 所以一般执行DDL和DML语句
1 package com.example.cms.sqlite; 2 /** 3 *示范如何在Android中操作SQLites数据库 4 * 提供两个文本框让用户输入内容 用户点击按钮 既可实现将数据存入数据库中 5 */ 6 7 import android.database.Cursor; 8 import android.database.sqlite.SQLiteDatabase; 9 import android.database.sqlite.SQLiteException; 10 import android.support.v7.app.AppCompatActivity; 11 import android.os.Bundle; 12 import android.view.View; 13 import android.widget.Button; 14 import android.widget.CursorAdapter; 15 import android.widget.EditText; 16 import android.widget.ListView; 17 import android.widget.SimpleCursorAdapter; 18 19 public class MainActivity extends AppCompatActivity { 20 private EditText news_title; 21 private EditText news_content; 22 private Button button; 23 private ListView listView; 24 SQLiteDatabase dataBase; //获取SQLite对象 25 @Override 26 protected void onCreate(Bundle savedInstanceState) { 27 super.onCreate(savedInstanceState); 28 setContentView(R.layout.activity_main); 29 30 31 //绑定布局控件 32 news_title= (EditText) findViewById(R.id.news_title); 33 news_content= (EditText) findViewById(R.id.news_content); 34 button= (Button) findViewById(R.id.button); 35 listView= (ListView) findViewById(R.id.listView); 36 dataBase=SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/my.db3",null); 37 38 //设置Button的点击事件 39 button.setOnClickListener(new View.OnClickListener() { 40 @Override 41 public void onClick(View v) { 42 //获取用户输入 43 String title=news_title.getText().toString(); 44 String content=news_content.getText().toString(); 45 try{ 46 //调用方法向SQLite数据库中存入数据 47 insertData(dataBase,title,content); 48 Cursor cursor= dataBase.rawQuery("SELECT * FROM news_inf",null); 49 inflateList(cursor); 50 }catch (SQLiteException se){ 51 //执行DDL创建数据库 52 dataBase.execSQL("CREATE TABLE news_inf(" 53 +"_id INTEGER PRIMARY KEY AUTOINCREMENT," 54 +"news_title VARCHAR(50)," 55 +"news_content VARCHAR(255))"); 56 insertData(dataBase,title,content); 57 Cursor cursor= dataBase.rawQuery("SELECT * FROM news_inf",null); 58 inflateList(cursor); 59 } 60 } 61 }); 62 } 63 64 private void insertData(SQLiteDatabase database,String title,String content){ 65 database.execSQL("INSERT INTO news_inf VALUES(null,?,?)",new String[]{title,content}); 66 } 67 private void inflateList(Cursor cursor){ 68 SimpleCursorAdapter adapter=new SimpleCursorAdapter(MainActivity.this,R.layout.line,cursor,new String[]{"news_title","news_content"},new int[]{R.id.set_title,R.id.set_content}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 69 listView.setAdapter(adapter); 70 71 } 72 73 @Override 74 protected void onDestroy() { 75 super.onDestroy(); 76 if(dataBase!=null&&dataBase.isOpen()){ 77 dataBase.close(); 78 } 79 } 80 }
原文:http://www.cnblogs.com/xiaoxuanandroid/p/5267213.html