1.繼承類SQLiteOpenHelper:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<code>public</code> <code>class</code> <code>MySQLiteHelper </code><code>extends</code> <code>SQLiteOpenHelper</code>
<code>{</code>
<code> </code><code>//重寫構造方法</code>
<code> </code><code>public</code> <code>MySQLiteHelper(Context context, String name, CursorFactory factory,</code>
<code> </code><code>int</code> <code>version)</code>
<code> </code><code>{</code>
<code> </code><code>super</code><code>(context, name, factory, version);</code>
<code> </code><code>}</code>
<code> </code><code>//建立表</code>
<code> </code><code>@Override</code>
<code> </code><code>public</code> <code>void</code> <code>onCreate(SQLiteDatabase db)</code>
<code> </code><code>db.execSQL(</code><code>"CREATE TABLE person(personid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),phone VARCHAR(20))"</code> <code>);</code>
<code> </code><code>db.execSQL(</code><code>"CREATE TABLE student(personid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),phone VARCHAR(20))"</code> <code>);</code>
<code> </code><code>//更新表(當Database的Version低于目前new裡的Version,直接執行下面方法)</code>
<code> </code><code>public</code> <code>void</code> <code>onUpgrade(SQLiteDatabase db, </code><code>int</code> <code>oldVersion, </code><code>int</code> <code>newVersion)</code>
<code> </code>
<code> </code><code>int</code> <code>v = newVersion - oldVersion;</code>
<code> </code><code>switch</code> <code>(v)</code>
<code> </code><code>{</code>
<code> </code><code>case</code> <code>3</code><code>:</code>
<code> </code><code>db.execSQL(</code><code>"ALTER TABLE person ADD salary3 VARCHAR(20)"</code><code>);</code>
<code> </code><code>case</code> <code>2</code><code>:</code>
<code> </code><code>db.execSQL(</code><code>"ALTER TABLE person ADD salary2 VARCHAR(20)"</code><code>);</code>
<code> </code><code>case</code> <code>1</code><code>:</code>
<code> </code><code>db.execSQL(</code><code>"ALTER TABLE person ADD salary1 VARCHAR(20)"</code><code>);</code>
<code> </code><code>default</code><code>:</code>
<code> </code><code>break</code><code>;</code>
<code> </code><code>}</code>
<code>}</code>
2.實作增删改查:
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<code>/**</code>
<code> </code><code>*</code>
<code>CREATE TABLE person</code>
<code>(</code>
<code> </code><code>personid INTEGER PRIMARY KEY AUTOINCREMENT,</code>
<code> </code><code>name VARCHAR(20),</code>
<code> </code><code>phone VARCHAR(20)</code>
<code>)</code>
<code>DROP TABLE person //删除表</code>
<code>INSERT INTO person(name,phone) VALUES ("rongqin","1598088588") //插入</code>
<code>UPDATE person SET name="Andfeel" WHERE personid=2 //改</code>
<code>ALTER TABLE person ADD salary //增加列</code>
<code>DELETE FROM person WHERE name="Andfeel" //删除</code>
<code> </code>
<code>SELECT * FROM person WHERE name="Andfeel"</code>
<code>SELECT phone,name FROM person</code>
<code>SELECT name,phone FROM person ORDER BY name ASC"//ASC升序 DESC降序</code>
<code> </code><code>*/</code>
<code>public</code> <code>class</code> <code>MainActivity </code><code>extends</code> <code>Activity </code><code>implements</code> <code>OnClickListener</code>
<code> </code>
<code> </code><code>private</code> <code>TextView textView;</code>
<code> </code><code>private</code> <code>MySQLiteHelper mDBHelper;</code>
<code> </code><code>private</code> <code>MySQLiteHelper bHelper;</code>
<code> </code><code>protected</code> <code>void</code> <code>onCreate(Bundle savedInstanceState)</code>
<code> </code><code>super</code><code>.onCreate(savedInstanceState);</code>
<code> </code><code>setContentView(R.layout.activity_main);</code>
<code> </code>
<code> </code><code>findViewById(R.id.btn__create_table).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>findViewById(R.id.btn_delete_table).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>findViewById(R.id.btn_alter_table).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>findViewById(R.id.btn_insert).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>findViewById(R.id.btn_delete).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>findViewById(R.id.btn_update).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>findViewById(R.id.btn_select).setOnClickListener(</code><code>this</code><code>);</code>
<code> </code><code>textView = (TextView) findViewById(R.id.textView1);</code>
<code> </code><code>//建立資料庫</code>
<code> </code><code>mDBHelper = </code><code>new</code> <code>MySQLiteHelper(</code><code>this</code><code>, </code><code>"one.db"</code><code>, </code><code>null</code><code>, </code><code>3</code><code>);</code>
<code> </code><code>public</code> <code>boolean</code> <code>onCreateOptionsMenu(Menu menu)</code>
<code> </code><code>getMenuInflater().inflate(R.menu.activity_main, menu);</code>
<code> </code><code>return</code> <code>true</code><code>;</code>
<code> </code><code>public</code> <code>void</code> <code>onClick(View v)</code>
<code> </code><code>switch</code> <code>(v.getId())</code>
<code> </code><code>case</code> <code>R.id.btn__create_table:</code>
<code> </code><code>btnCreateTable();</code>
<code> </code><code>case</code> <code>R.id.btn_delete_table:</code>
<code> </code><code>btnDeleteTable();</code>
<code> </code><code>case</code> <code>R.id.btn_alter_table:</code>
<code> </code><code>btnAlterTable();</code>
<code> </code><code>case</code> <code>R.id.btn_insert:</code>
<code> </code><code>btnInsert();</code>
<code> </code><code>case</code> <code>R.id.btn_delete:</code>
<code> </code><code>btnDelete();</code>
<code> </code><code>case</code> <code>R.id.btn_update:</code>
<code> </code><code>btnUpdate();</code>
<code> </code><code>case</code> <code>R.id.btn_select:</code>
<code> </code><code>btnSelect();</code>
<code> </code><code>private</code> <code>void</code> <code>btnSelect()</code><code>//查</code>
<code> </code><code>SQLiteDatabase db = mDBHelper.getWritableDatabase();</code>
<code>// Cursor cursor = db.rawQuery("SELECT * FROM person WHERE name = ?", new String[]{"rongqin"});</code>
<code>// cursor.moveToFirst();</code>
<code> </code><code>Cursor cursor = db.query(</code>
<code> </code><code>"person"</code><code>, </code><code>//表名</code>
<code> </code><code>new</code> <code>String[]{</code><code>"phone"</code><code>,</code><code>"name"</code><code>}, </code><code>//查詢的列名</code>
<code> </code><code>"name=?"</code><code>, </code><code>//查詢條件</code>
<code> </code><code>new</code> <code>String[]{</code><code>"huangxx"</code><code>}, </code><code>//查詢參數</code>
<code> </code><code>null</code><code>, </code><code>null</code><code>,</code>
<code> </code><code>"phone DESC"</code><code>); </code><code>//排序,升序為ASC,降序為DESC</code>
<code> </code><code>boolean</code> <code>hasdata = cursor.moveToFirst();</code><code>//遊标移到第一行</code>
<code> </code><code>StringBuilder sb = </code><code>new</code> <code>StringBuilder();</code>
<code> </code><code>while</code><code>(hasdata)</code><code>//是否有資料</code>
<code> </code><code>int</code> <code>columnIndex = cursor.getColumnIndex(</code><code>"name"</code><code>);</code><code>//得到name的列數</code>
<code> </code><code>String name = cursor.getString(columnIndex);</code><code>//得到name這一列的值</code>
<code> </code>
<code> </code><code>int</code> <code>columnIndex2 = cursor.getColumnIndex(</code><code>"phone"</code><code>);</code>
<code> </code><code>String phone = cursor.getString(columnIndex2);</code>
<code> </code><code>sb.append(</code><code>"name:"</code><code>).append(name).append(</code><code>" phone:"</code><code>).append(phone).append(</code><code>"--"</code><code>);</code>
<code> </code><code>hasdata = cursor.moveToNext();</code><code>//遊标移動到下一行,判斷是否有值</code>
<code> </code><code>textView.setText(sb.toString());</code>
<code> </code><code>private</code> <code>void</code> <code>btnUpdate()</code><code>//改</code>
<code>// db.execSQL("UPDATE person SET phone='0592xxxxxx' WHERE personid=5");</code>
<code> </code><code>ContentValues values = </code><code>new</code> <code>ContentValues();</code>
<code> </code><code>values.put(</code><code>"name"</code><code>, </code><code>"haoyouduo"</code><code>);</code>
<code> </code><code>values.put(</code><code>"phone"</code><code>, </code><code>"666666"</code><code>);</code>
<code> </code><code>db.update(</code><code>"person"</code><code>, values , </code><code>"personid=?"</code> <code>, </code><code>new</code> <code>String[]{</code><code>"8"</code><code>});</code>
<code> </code><code>private</code> <code>void</code> <code>btnDelete()</code><code>//删</code>
<code>// db.execSQL("DELETE FROM person WHERE name='Andfeel'");</code>
<code> </code><code>db.delete(</code><code>"person"</code><code>,</code><code>"name = ? and personid = ?"</code><code>, </code><code>new</code> <code>String[]{</code><code>"haoyouduo"</code> <code>, </code><code>"5"</code><code>});</code>
<code> </code><code>private</code> <code>void</code> <code>btnInsert()</code><code>//增</code>
<code>// db.execSQL("INSERT INTO person(name,phone) VALUES ('rongqin',1598088588)");</code>
<code> </code><code>values.put(</code><code>"name"</code><code>, </code><code>"huangxx"</code><code>);</code>
<code> </code><code>values.put(</code><code>"phone"</code><code>, </code><code>"158888"</code><code>);</code>
<code> </code><code>db.insert(</code><code>"person"</code><code>, </code><code>null</code> <code>, values );</code>
<code> </code><code>private</code> <code>void</code> <code>btnAlterTable()</code><code>//擴充表</code>
<code> </code><code>private</code> <code>void</code> <code>btnDeleteTable()</code><code>//删除表</code>
<code> </code><code>private</code> <code>void</code> <code>btnCreateTable()</code><code>//建立表</code>
其他總結:
1.關閉資料源
<code> </code><code>* 關閉資料源</code>
<code>public</code> <code>void</code> <code>closeConnection()</code>
<code> </code><code>if</code> <code>(mDb != </code><code>null</code> <code>&& mDb.isOpen())</code>
<code> </code><code>mDb.close();</code>
<code> </code><code>if</code> <code>(mDbHelper != </code><code>null</code><code>)</code>
<code> </code><code>mDbHelper.close();</code>
<code></code>
本文轉自 glblong 51CTO部落格,原文連結:http://blog.51cto.com/glblong/1216877,如需轉載請自行聯系原作者