SQListActivity
1 package com.example.administrator.myapplication.database.Activity; 2 3 import android.content.ContentValues; 4 import android.database.Cursor; 5 import android.database.sqlite.SQLiteDatabase; 6 import android.os.Bundle; 7 import android.support.v7.app.AppCompatActivity; 8 import android.view.View; 9 import android.widget.Button; 10 import android.widget.EditText; 11 import android.widget.Toast; 12 13 import com.example.administrator.myapplication.R; 14 import com.example.administrator.myapplication.database.MySQLiteOpenHelper; 15 import com.example.administrator.myapplication.util.Common; 16 17 public class SQLiteActivity extends AppCompatActivity { 18 Button insertBtn; 19 Button queryBtn; 20 Button deleteBtn; 21 Button updateBtn; 22 EditText titleET; 23 EditText deleteET; 24 EditText updateET; 25 String TitleReceiver; 26 String deleteReceiver; 27 String updateReceiver; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_sqlite); 33 titleET = (EditText) findViewById(R.id.titleText); 34 deleteET = (EditText) findViewById(R.id.deleteText); 35 updateET = (EditText) findViewById(R.id.updateText); 36 insertBtn = (Button) findViewById(R.id.insertData); 37 insertBtn.setOnClickListener(new View.OnClickListener() { 38 @Override 39 public void onClick(View v) { 40 insertData(); 41 } 42 }); 43 queryBtn = (Button) findViewById(R.id.queryData); 44 queryBtn.setOnClickListener(new View.OnClickListener() { 45 @Override 46 public void onClick(View v) { 47 queryData(); 48 } 49 }); 50 deleteBtn = (Button) findViewById(R.id.deleteData); 51 deleteBtn.setOnClickListener(new View.OnClickListener() { 52 @Override 53 public void onClick(View v) { 54 deleteData(); 55 } 56 }); 57 updateBtn = (Button) findViewById(R.id.updateData); 58 updateBtn.setOnClickListener(new View.OnClickListener() { 59 @Override 60 public void onClick(View v) { 61 updateData(); 62 } 63 }); 64 } 65 66 //插入数据 67 public void insertData(){ 68 TitleReceiver = titleET.getText().toString(); 69 //调用帮助类的构造函数,创建数据库 70 MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this); 71 //调用帮助类的onCreate方法,创建表 72 SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase(); 73 //将保存的数据放入ContentValues中 74 ContentValues contentValues = new ContentValues(); 75 contentValues.put(Common.NewsTable.TBL_TITLE,TitleReceiver); 76 contentValues.put(Common.NewsTable.TBL_CONTENT,"内容"); 77 contentValues.put(Common.NewsTable.TBL_SRC,"图片"); 78 contentValues.put(Common.NewsTable.TBL_DATE,"日期"); 79 //调用insert方法,保存数据 80 sqLiteDatabase.insert(Common.NewsTable.TBL_NAME,null,contentValues); 81 //!!!数据库操作完成后,一定要关闭数据库 82 sqLiteDatabase.close(); 83 Toast.makeText(getApplication(),"保存数据成功!",Toast.LENGTH_SHORT).show(); 84 } 85 //查询数据 86 public void queryData(){ 87 MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this); 88 SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getReadableDatabase(); 89 //调用SQLiteDatabase的Query方法,返回数据库查询的结果集 90 Cursor cursor = sqLiteDatabase.query( 91 Common.NewsTable.TBL_NAME, 92 new String[]{Common.NewsTable.TBL_TITLE,Common.NewsTable.TBL_CONTENT,Common.NewsTable.TBL_SRC,Common.NewsTable.TBL_DATE}, 93 null,null,null,null,null 94 ); 95 //!!查询对应数据的时候,一定要现获取列的索引值 96 while (cursor.moveToNext()){ 97 int titleIndex = cursor.getColumnIndex(Common.NewsTable.TBL_TITLE); 98 String title = cursor.getString(titleIndex); 99 Toast.makeText(getApplication(),title,Toast.LENGTH_SHORT).show(); 100 } 101 //数据查询完毕以后,1:关系结果集 2.关闭SQLiteDataBase 102 cursor.close(); 103 sqLiteDatabase.close(); 104 Toast.makeText(getApplication(),"查询完毕!",Toast.LENGTH_SHORT).show(); 105 } 106 //删除数据 107 private void deleteData() { 108 deleteReceiver = deleteET.getText().toString(); 109 MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this); 110 SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase(); 111 sqLiteDatabase.delete( 112 Common.NewsTable.TBL_NAME, 113 // ?:占位符 " = ? "相当于 " = 标题 ", null 114 Common.NewsTable.TBL_TITLE+ " = ?", 115 new String[]{deleteReceiver} 116 ); 117 sqLiteDatabase.close(); 118 Toast.makeText(getApplication(),"删除成功!",Toast.LENGTH_SHORT).show(); 119 } 120 //修改数据 121 private void updateData() { 122 updateReceiver = updateET.getText().toString(); 123 MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(this); 124 SQLiteDatabase sqLiteDatabase = mySQLiteOpenHelper.getWritableDatabase(); 125 ContentValues contentValues = new ContentValues(); 126 contentValues.put(Common.NewsTable.TBL_TITLE,"这是修改后的数据"); 127 sqLiteDatabase.update( 128 Common.NewsTable.TBL_NAME, 129 contentValues, 130 Common.NewsTable.TBL_TITLE + " = ?", 131 new String[]{updateReceiver} 132 ); 133 sqLiteDatabase.close(); 134 Toast.makeText(getApplication(),"修改成功!",Toast.LENGTH_SHORT).show(); 135 } 136 }
MySQListOPENHelper 创建数据库 创建表
1 package com.example.administrator.myapplication.database; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 7 import com.example.administrator.myapplication.util.Common; 8 9 /** 10 * Created by Administrator on 2016-9-19. 11 */ 12 13 //帮助类继承SQLiteOpenHelper,方法:构造函数,创建数据库,创建表,更新表 14 public class MySQLiteOpenHelper extends SQLiteOpenHelper { 15 private static final String DB_Name = "new.db"; //数据库后缀为db,常量用大写 16 private static final int VERSION = 1; //数据库版本号 17 //上下文,数据库名字,factory默认null,版本号 18 /*public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 19 super(context, DB_Name, factory, VERSION); 20 }*/ 21 //实现了数据库的创建,factory默认null,版本号固定 22 public MySQLiteOpenHelper(Context context) { 23 super(context, DB_Name, null, VERSION); 24 } 25 26 //在onCreate方法中创建表,只执行一次 27 @Override 28 public void onCreate(SQLiteDatabase db) { 29 String sql = Common.NewsTable.getCreateTableSQL(); 30 db.execSQL(sql); 31 } 32 //onUpgrade更新表 33 @Override 34 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 35 //先删除原表,再调用onCreate创建新表 36 db.execSQL("drop table "+ Common.NewsTable.TBL_NAME); 37 onCreate(db); 38 } 39 }
Common 公共类
1 package com.example.administrator.myapplication.util; 2 3 /** 4 * Created by Administrator on 2016-9-19. 5 */ 6 public class Common { 7 public static class NewsTable{ 8 public static final String TBL_NAME ="News"; 9 public static final String TBL_TITLE = "NewsTitle"; 10 public static final String TBL_CONTENT = "NewsContent"; 11 public static final String TBL_SRC = "NewsImg"; 12 public static final String TBL_DATE = "NewsDate"; 13 14 public static String getCreateTableSQL(){ 15 String sql = "create table if not exists " 16 + TBL_NAME 17 + "(" 18 + " _id integer primary key autoincrement," 19 + TBL_TITLE + " text," 20 + TBL_CONTENT + " text," 21 + TBL_SRC + " text," 22 + TBL_DATE + " varchar(50)" 23 + ")"; 24 return sql; 25 } 26 } 27 }
activity_sqlite
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:orientation="vertical" 7 tools:context=".database.Activity.SQLiteActivity"> 8 9 <EditText 10 android:id="@+id/titleText" 11 android:layout_width="match_parent" 12 android:layout_height="wrap_content" 13 android:hint="请输入标题" /> 14 15 <LinearLayout 16 android:layout_width="match_parent" 17 android:layout_height="wrap_content" 18 android:orientation="horizontal"> 19 20 <TextView 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:text="请输入要删除的数据" /> 24 25 <EditText 26 android:id="@+id/deleteText" 27 android:layout_width="match_parent" 28 android:layout_height="wrap_content" /> 29 </LinearLayout> 30 31 <LinearLayout 32 android:layout_width="match_parent" 33 android:layout_height="wrap_content" 34 android:orientation="horizontal"> 35 36 <TextView 37 android:layout_width="wrap_content" 38 android:layout_height="wrap_content" 39 android:text="请输入要修改的数据" /> 40 41 <EditText 42 android:id="@+id/updateText" 43 android:layout_width="match_parent" 44 android:layout_height="wrap_content" /> 45 </LinearLayout> 46 47 <Button 48 android:id="@+id/insertData" 49 android:layout_width="match_parent" 50 android:layout_height="wrap_content" 51 android:text="添加数据" /> 52 53 <Button 54 android:id="@+id/queryData" 55 android:layout_width="match_parent" 56 android:layout_height="wrap_content" 57 android:text="查找数据 " /> 58 59 <Button 60 android:id="@+id/updateData" 61 android:layout_width="match_parent" 62 android:layout_height="wrap_content" 63 android:text="修改数据" /> 64 65 <Button 66 android:id="@+id/deleteData" 67 android:layout_width="match_parent" 68 android:layout_height="wrap_content" 69 android:text="删除数据" /> 70 </LinearLayout>