版权声明:转载请标明出处 https://blog.csdn.net/easy_purple/article/details/80920369
使用安卓自带的sqlite数据库操作数据库(eclipse)
先上图:
主界面是增加数据、更新数据、删除数据三个按钮,,查询功能的话, 在删除界面、更新界面 写的查询所有数据。
接下来主要是代码的展示:(代码里有必要的注释)
SQLiteDBUtil.java 数据库工具类
activity_main.xml 主界面
MainActivity.java
AddActivity.java 增加数据界面
UpdateActivity.java 更新数据界面
DeleteActivity.java 删除数据界面
首先新建一个数据库工具类:
SQLiteDBUtil.java
package
easy.practice_sql;
import
android.content.Context;
import
android.database.DatabaseErrorHandler
;
import
android.database.sqlite.SQLiteDatabase;
import
android.database.sqlite.SQLiteDatabase.CursorFactory
;
import
android.database.sqlite.SQLiteOpenHelper;
public
class
SQLiteDBUtil
extends
SQLiteOpenHelper {
public
static
final
String
NAME
=
"practiceDataBases"
;
//数据库名
public
static
final
int
VERSION
= 1;
//版本号
/**
* content上下文对象 name数据库名称 factory数据库工厂 version版本
*
*
@param
context
*/
public
SQLiteDBUtil(Context context) {
super
(context,
NAME
,
null
,
VERSION
);
//
TODO
Auto-generated constructor stub
}
//
@Override
public
void
onCreate(SQLiteDatabase db) {//执行创建数据表的sql语句
String userSQL =
"create table practice"
+
"(id integer primary key autoincrement,"
+
"name varchar(5),"
+
"age integer)"
;
db.execSQL(userSQL);
}
@Override
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion) {
//
TODO
Auto-generated method stub
}
}
主布局就是三个按钮:
activity_main.xml
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:orientation
=
"vertical"
tools:context
=
".MainActivity"
>
<
Button
android:id
=
"@+id/add"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"添加数据"
/>
<
Button
android:id
=
"@+id/update"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"更新数据"
/>
<
Button
android:id
=
"@+id/delete"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"删除数据"
/>
</
LinearLayout
>
MainActivity.java
package
easy.practice_sql;
import
java.util.Date
;
import
android.os.Bundle;
import
android.app.Activity;
import
android.content.Intent;
import
android.database.Cursor
;
import
android.database.sqlite.SQLiteDatabase
;
import
android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText
;
import
android.widget.TextView
;
import
android.widget.Toast
;
//15893028654
public
class
MainActivity
extends
Activity
implements
OnClickListener {
private
Button
add
,
update
,
delete
;
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main
);
initView();
initAction();
}
private
void
initView() {
add
= (Button) findViewById(R.id.
add
);
update
= (Button) findViewById(R.id.
update
);
delete
= (Button) findViewById(R.id.
delete
);
}
private
void
initAction() {
add
.setOnClickListener(
this
);
update
.setOnClickListener(
this
);
delete
.setOnClickListener(
this
);
}
@Override
public
void
onClick(View v) {
switch
(v.getId()) {
case
R.id.
add
:
startActivity(
new
Intent(getApplicationContext(), AddActivity.
class
));
break
;
case
R.id.
update
:
startActivity(
new
Intent(getApplicationContext(),
UpdateActivity.
class
));
break
;
case
R.id.
delete
:
startActivity(
new
Intent(getApplicationContext(),
DeleteActivity.
class
));
break
;
default
:
break
;
}
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.
main
, menu);
return
true
;
}
}
AddActivity.java 增加数据界面
package
easy.practice_sql;
import
android.os.Bundle;
import
android.app.Activity;
import
android.content.Intent
;
import
android.database.sqlite.SQLiteDatabase;
import
android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.Toast;
public
class
AddActivity
extends
Activity
implements
OnClickListener {
private
EditText
add_name
,
add_age
;
private
Button
btn_add
;
@Override
protected
void
onCreate(Bundle
savedInstanceState
) {
super
.onCreate(
savedInstanceState
);
setContentView(R.layout.
activity_add
);
initView();
initAction();
}
private
void
initView() {
add_name
= (EditText) findViewById(R.id.
add_name
);
add_age
= (EditText) findViewById(R.id.
add_age
);
btn_add
= (Button) findViewById(R.id.
btn_add
);
}
private
void
initAction() {
btn_add
.setOnClickListener(
this
);
}
@Override
public
void
onClick(View v) {
switch
(v.getId()) {
case
R.id.
btn_add
:
if
(
""
.equals(
add_name
.getText().toString())
||
""
.equals(
add_age
.getText().toString())) {
Toast.
makeText
(getApplicationContext(),
"请您输入姓名和年龄哦"
,
Toast.
LENGTH_SHORT
).show();
}
else
{
doInsert();
}
break
;
default
:
break
;
}
}
public
void
doInsert() {
String getName =
add_name
.getText().toString();
int
getAge = Integer.
valueOf
((
add_age
.getText().toString()));
//获取数据库操作对象
SQLiteDBUtil db =
new
SQLiteDBUtil(getApplicationContext());
SQLiteDatabase sd = db.getWritableDatabase();
//创建
sql
语句
String sql =
"insert into practice values(null,?,?)"
;
//执行
sql
语句
sd.execSQL(sql,
new
Object[] { getName, getAge });
//关闭数据库
db.close();
Toast.
makeText
(getApplicationContext(),
"添加数据成功!"
, Toast.
LENGTH_SHORT
)
.show();
add_name
.setText(
""
);
add_age
.setText(
""
);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.
add
, menu);
return
true
;
}
}
UpdateActivity.java 更新数据界面
package
easy.practice_sql;
import
android.os.Bundle;
import
android.app.Activity;
import
android.content.Intent
;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import
android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
import
android.widget.Toast;
public
class
UpdateActivity
extends
Activity
implements
OnClickListener {
private
EditText
id
,
update_name
,
update_age
;
private
TextView
updatae_showAll
;
private
Button
btn_update
;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_update
);
initView();
initAction();
}
private
void
initView() {
id
= (EditText) findViewById(R.id.
id
);
update_name
= (EditText) findViewById(R.id.
update_name
);
update_age
= (EditText) findViewById(R.id.
update_age
);
updatae_showAll
= (TextView) findViewById(R.id.
update_showAll
);
btn_update
= (Button) findViewById(R.id.
btn_update
);
doQuery();
}
private
void
initAction() {
btn_update
.setOnClickListener(
this
);
}
@Override
public
void
onClick(View v) {
switch
(v.getId()) {
case
R.id.
btn_update
:
doUpdate();
break
;
default
:
break
;
}
}
public
void
doQuery() {
// **************************************************************
// 将所有的信息展示在文本框里
String s =
""
;
SQLiteDBUtil db =
new
SQLiteDBUtil(getApplicationContext());
SQLiteDatabase sd = db.getReadableDatabase();
String sql =
"select * from practice"
;
Cursor cursor = sd.rawQuery(sql,
null
);
while
(cursor.moveToNext()) {
s = s +
"id:"
+ cursor.getInt(0) +
"\t姓名:"
+ cursor.getString(1)
+
"\t年龄:"
+ cursor.getInt(2) +
"\n"
;
}
db.close();
cursor.close();
updatae_showAll
.setText(s);
// **************************************************************
}
public
void
doUpdate() {
String getName =
update_name
.getText().toString();
String getAge =
update_age
.getText().toString();
String getId =
id
.getText().toString();
int
age = Integer.
valueOf
(getAge);
int
id = Integer.
valueOf
(getId);
SQLiteDBUtil db =
new
SQLiteDBUtil(getApplicationContext());
SQLiteDatabase sd = db.getWritableDatabase();
String sql =
"update practice set name= ?"
+
" ,age= ? where id=?"
;
sd.execSQL(sql,
new
Object[] { getName, age, id });
// 这里进行关闭
db.close();
Toast.
makeText
(getApplicationContext(),
"修改成功了哦!"
, Toast.
LENGTH_SHORT
)
.show();
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.
update
, menu);
return
true
;
}
}
DeleteActivity.java 删除数据界面
package
easy.practice_sql;
import
android.os.Bundle;
import
android.app.Activity;
import
android.content.Intent
;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import
android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
import
android.widget.Toast;
public
class
DeleteActivity
extends
Activity
implements
OnClickListener {
private
EditText
text
;
private
TextView
showAll
;
private
Button
btn_delete
;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_delete
);
initView();
initAction();
}
private
void
initView() {
text
= (EditText) findViewById(R.id.
text
);
btn_delete
= (Button) findViewById(R.id.
btn_delete
);
showAll
= (TextView) findViewById(R.id.
showAll
);
// 显示所有的信息
doQuery();
}
private
void
initAction() {
btn_delete
.setOnClickListener(
this
);
}
@Override
public
void
onClick(View v) {
switch
(v.getId()) {
case
R.id.
btn_delete
:
String getText =
text
.getText().toString();
if
(!
""
.equals(getText)) {
// 如果文本框里用户输入了信息,就进行操作。(这里只考虑用户输入所要删除的id,数据库里都有
doDelete(getText);
}
else
{
Toast.
makeText
(getApplicationContext(),
"请输入所要删除的姓名"
,
Toast.
LENGTH_SHORT
).show();
}
break
;
default
:
break
;
}
}
public
void
doDelete(String name) {
SQLiteDBUtil db =
new
SQLiteDBUtil(getApplicationContext());
SQLiteDatabase sd = db.getWritableDatabase();
// 在这里,若是有字符串的话,,前后需要加单引号
String sql =
"delete from practice where name = "
+
"'"
+ name +
"'"
;
sd.execSQL(sql);
// 这里进行关闭
db.close();
Toast.
makeText
(getApplicationContext(),
"删除成功"
,
Toast.
LENGTH_SHORT
).show();
}
public
void
doQuery() {
// **************************************************************
// 将所有的信息展示在文本框里
String s =
""
;
SQLiteDBUtil db =
new
SQLiteDBUtil(getApplicationContext());
SQLiteDatabase sd = db.getReadableDatabase();
String sql =
"select * from practice"
;
Cursor cursor = sd.rawQuery(sql,
null
);
while
(cursor.moveToNext()) {
s = s +
"id:"
+ cursor.getInt(0) +
"\t姓名:"
+ cursor.getString(1)
+
"\t年龄:"
+ cursor.getInt(2) +
"\n"
;
}
db.close();
cursor.close();
showAll
.setText(s);
// **************************************************************
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.
delete
, menu);
return
true
;
}
}