现在的位置: 首页 > 综合 > 正文

android数据库SQLite的创建及更新,增,删操作

2018年06月06日 ⁄ 综合 ⁄ 共 4285字 ⁄ 字号 评论关闭

数据库mldn.db的创建和mytab表的创建

package com.example.sqlitedatabaseproject;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MySQLiteDataBase extends SQLiteOpenHelper {
private static final String DATABASENAME="mldn.db"; //数据库名称
private static final int DATABASEVERSION=1; // 数据库版本
private static final String DATABASETABLE="mytab"; //数据表名称
public MySQLiteDataBase(Context context) {
super(context, DATABASENAME, null, DATABASEVERSION); //创建数据库
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
String sql="CREATE TABLE "+DATABASETABLE+"("
+"id INTEGER PRIMARY KEY,"
+"name VARCHAR(50) NOT NULL,"
+"birthday DATE NOT NULL)"; //创建表
db.execSQL(sql); //执行SQL语句
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql="DROP TABLE IF EXISTS "+DATABASETABLE;
db.execSQL(sql); //执行SQL语句
this.onCreate(db); //更新操作
}

}
数据库的增,删,更新操作

package com.example.sqlitedatabaseproject;

import android.database.sqlite.SQLiteDatabase;

public class MytabOperate {
private static final String TABLENAME="mytab"; //表的名称
private SQLiteDatabase db=null; //数据库操作的基本类
public MytabOperate(SQLiteDatabase db){
this.db=db;
}

public void insert(String name,String birthday){
String sql="INSERT INTO "+TABLENAME+"(name,birthday) VALUES(?,?)";
Object[] arg=new Object[]{name,birthday}; //设置SQL语句的参数
this.db.execSQL(sql,arg); //执行SQL语句
this.db.close(); ();//关闭数据库
}
public void update(int id,String name,String birthday){
String sql="UPDATE "+TABLENAME+" SET name=?,birthday=? WHERE id=?";
Object[] arg=new Object[]{name,birthday,id};//设置SQL语句的参数
this.db.execSQL(sql, arg); //执行SQL语句
this.db.close();//关闭数据库
}
public void delete(int id){
String sql="DELETE FROM "+TABLENAME+" WHERE id=?";
Object[] arg=new Object[]{id}; //设置SQL语句的参数
this.db.execSQL(sql, arg); //执行SQL语句
this.db.close(); //关闭数据库
}
}

主程序

package com.example.sqlitedatabaseproject;

import android.os.Bundle;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
private Button insertBut=null; //获得按钮
private Button updateBut=null; //获得按钮
private Button deleteBut=null; //获得按钮
private SQLiteOpenHelper helper=null; //数据库辅助类
private MytabOperate mytab=null; //数据库操作类
private static int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
this.helper=new MySQLiteDataBase(this); //定义数据库辅助类
this.insertBut=(Button)super.findViewById(R.id.insert); //获取组建
this.updateBut=(Button)super.findViewById(R.id.update); //获取组建
this.deleteBut=(Button)super.findViewById(R.id.delete); //获取组建
this.insertBut.setOnClickListener(new OnClickListenerInsertlmpl()); //定义按钮的单击事件
this.updateBut.setOnClickListener(new OnClickListenerUpdatelmpl());
this.deleteBut.setOnClickListener(new OnClickListenerDeletelmpl());
}
private class OnClickListenerInsertlmpl implements OnClickListener{

@Override
public void onClick(View v) {
MainActivity.this.mytab=new MytabOperate(
MainActivity.this.helper.getWritableDatabase()); //取得可更新的数据库
MainActivity.this.mytab.insert("李元静"+count++, "1992-01-91");
}
}
private class OnClickListenerUpdatelmpl implements OnClickListener{

@Override
public void onClick(View v) {
MainActivity.this.mytab=new MytabOperate(
MainActivity.this.helper.getWritableDatabase()); //取得可更新的数据库
MainActivity.this.mytab.update(3, "唤醒", "2002-01-01");
}
}
private class OnClickListenerDeletelmpl implements OnClickListener{

@Override
public void onClick(View v) {
MainActivity.this.mytab=new MytabOperate(
MainActivity.this.helper.getWritableDatabase()); //取得可更新的数据库
MainActivity.this.mytab.delete(3);
}
}

@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;
}
}

界面的配置文件:采用线性布局

http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">


android:id="@+id/update"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="修改数据"/>

抱歉!评论已关闭.