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>
数据库SQList 添加 查询 修改 删除
标签: