其实Android的数据库操作本质和java没有区别
都是一样的套路 (不过有的事情我就不说了 代码之珍贵)
Android的数据库更加轻便适合移动端的设备
SQLiteDatabase
首先看数据库打开的方式 openDatabase(路径 游标工厂 工作模式(以 | 隔开))
然后执行sql语句 execSQL
关闭数据库很简单 close 就行
增删改查 主要是sql的语句(主要是讲Demo用的 实际操作千万不要模仿) Android里面只要execSQL去执行就行
插入 删除 修改 我就不多谈(代码在下面)
主要谈查询
Cursor 就相当于Java中的ResultSet 结果集
moveToNext 就相当于Java中的next
为了使代码不重用 自定义方法
public class SQLLiteExampleActivity extends Activity {
SQLiteDatabase sld;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//禁止显示结果用的EditText被编辑
EditText et=(EditText)this.findViewById(R.id.EditText01);
et.setKeyListener(null);
//初始化创建数据库按钮
Button b=(Button)this.findViewById(R.id.Button01);
b.setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v) {
createOrOpenDatabase();
}
}
);
//初始化关闭数据库按钮
b=(Button)this.findViewById(R.id.Button02);
b.setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v) {
closeDatabase();
}
}
);
//初始化添加记录按钮
b=(Button)this.findViewById(R.id.Button03);
b.setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v) {
insert();
}
}
);
//初始化删除记录按钮
b=(Button)this.findViewById(R.id.Button04);
b.setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v) {
delete();
}
}
);
//初始化修改记录按钮
b=(Button)this.findViewById(R.id.Button05);
b.setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v) {
update();
}
}
);
//初始化查询记录按钮
b=(Button)this.findViewById(R.id.Button06);
b.setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v) {
query();
}
}
);
}
//创建或打开数据库的方法
public void createOrOpenDatabase()
{
try
{
sld=SQLiteDatabase.openDatabase
(
"/data/data/wyf.jc/mydb", //数据库所在路径
null, //CursorFactory
SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY //读写、若不存在则创建
);
appendMessage("数据库已经成功打开!");
String sql="create table if not exists student(sno char(5),stuname varchar(20),sage integer,sclass char(5))";
sld.execSQL(sql);
appendMessage("student已经成功创建!");
}
catch(Exception e)
{
Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
}
}
//关闭数据库的方法
public void closeDatabase()
{
try
{
sld.close();
appendMessage("数据库已经成功关闭!");
}
catch(Exception e)
{
Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
}
}
//插入记录的方法
public void insert()
{
try
{
String sql="insert into student values('10001','王强',23,'97002')";
sld.execSQL(sql);
appendMessage("成功插入一条记录!");
}
catch(Exception e)
{
Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
}
}
//删除记录的方法
public void delete()
{
try
{
String sql="delete from student;";
sld.execSQL(sql);
appendMessage("成功删除所有记录!");
}
catch(Exception e)
{
Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
}
}
//修改记录的方法
public void update()
{
try
{
String sql="update student set stuname='李勇'";
sld.execSQL(sql);
appendMessage("成功更新记录!");
}
catch(Exception e)
{
Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
}
}
//查询的方法
public void query()
{
try
{
String sql="select * from student where sage>?";
Cursor cur=sld.rawQuery(sql, new String[]{"20"});
appendMessage("学号\t\t姓名\t\t年龄\t班级");
while(cur.moveToNext())
{
String sno=cur.getString(0);
String sname=cur.getString(1);
int sage=cur.getInt(2);
String sclass=cur.getString(3);
appendMessage(sno+"\t"+sname+"\t\t"+sage+"\t"+sclass);
}
cur.close();
}
catch(Exception e)
{
Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
}
}
//向文本区中添加文本
public void appendMessage(String msg)
{
EditText et=(EditText)this.findViewById(R.id.EditText01);
et.append(msg+"\n");
}
}