下面代码是简单的数据库创建:
package com.example.sqllite4;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenHelper extends SQLiteOpenHelper {
//数据名称,
private static final String DBNAME = "UserDataBase";
// 数据库版本
private static final int version = 1;
// 构造方法参数,
public MyOpenHelper(Context context) {
super(context, DBNAME, null, version);
}
// 数据库创建表的名子。
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE TestUsers (id integer primary key autoincrement,name varchar(50),sex varchar(50))");
}
// 更新方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("EROP TABLE IF EXISTS TestUsers");
onCreate(db);
}
}
下面是增删查改的Activity
package com.example.sqllite4;
import android.app.Activity;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;
public class SQLiteTest4 extends Activity {
Button btnInsert;
Button btnDelete;
Button btnUpdate;
Button btnSelect;
EditText etName;
EditText etSex;
TextView tvShowContent;
MyOpenHelper OpenHelper;
SQLiteDatabase db =null;
View.OnClickListener btnInsertListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
InsertTb();
}
};
View.OnClickListener btnDeleteListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DeleteTb();
}
};
View.OnClickListener btnUpdateListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
UpdateTb();
}
};
View.OnClickListener btnSelectListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Select();
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OpenHelper =new MyOpenHelper(this);
btnInsert = (Button) findViewById(R.id.main_btn_insert);
btnDelete = (Button) findViewById(R.id.main_btn_delete);
btnUpdate = (Button) findViewById(R.id.main_btn_update);
btnSelect = (Button) findViewById(R.id.main_btn_select);
tvShowContent = (TextView) findViewById(R.id.main_tv_showContent);
etName = (EditText) findViewById(R.id.main_et_name);
etSex = (EditText) findViewById(R.id.main_et_sex);
btnInsert.setOnClickListener(btnInsertListener);
btnDelete.setOnClickListener(btnDeleteListener);
btnUpdate.setOnClickListener(btnUpdateListener);
btnSelect.setOnClickListener(btnSelectListener);
}
/**
* 插入数据
*/
public void InsertTb(){
//声明一个int型变量赋值为-1
int flag =-1;
//创建或打开一个数据库
db = OpenHelper.getWritableDatabase();
//获取写入到EditText的姓名
String strName = etName.getText().toString();
//获取写入到EditText的性别
String strSex = etSex.getText().toString();
//写数据库的插入语句并执行sql语句,插入成功给予提示,失败也同样给予提示
String sql ="insert into TestUsers (name,sex) values ('"+strName+"','"+strSex+"')";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.i("err", "insert failed");
flag =0;
Toast.makeText(SQLiteTest4.this, "插入失败!", Toast.LENGTH_SHORT).show();
}
db.close();
if (flag ==-1){
Toast.makeText(SQLiteTest4.this, "插入成功!", Toast.LENGTH_SHORT).show();
}
}
/**
* 删除表中的数据
*/
public void DeleteTb(){
//声明一个int型变量赋值为-1
int flag =-1;
//创建或打开一个数据库
db = OpenHelper.getWritableDatabase();
//删除TestUsers表中id为1的数据并执行SQL,删除成功给予提示,删除失败也同样给予提示
String sql ="delete from TestUsers where id=1";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.i("err", "delete failed");
flag =0;
Toast.makeText(SQLiteTest4.this, "删除失败!", Toast.LENGTH_SHORT).show();
}
db.close();
if (flag ==-1){
Toast.makeText(SQLiteTest4.this, "删除成功!", Toast.LENGTH_SHORT).show();
}
}
public void UpdateTb() {
//声明一个int型变量赋值为-1
int flag =-1;
//创建或打开一个数据库
db = OpenHelper.getWritableDatabase();
//获取写入到EditText的姓名
String Name = etName.getText().toString();
//根据姓名更新TestUsers表中的姓名与性别并执行SQL,更新成功给予提示,删除失败也同样给予提示
String sql ="Update TestUsers set name='abc',sex='men' where name = '"+Name+"'";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.i("err", "update failed");
flag =0;
Toast.makeText(SQLiteTest4.this, "更新失败!", Toast.LENGTH_SHORT).show();
}
db.close();
if (flag ==-1){
Toast.makeText(SQLiteTest4.this, "更新成功!", Toast.LENGTH_SHORT).show();
}
}
//查询所有
public void Select(){
//打开或者创建数据库
db = OpenHelper.getReadableDatabase();
//查询所有的姓名与性别返回的值用游标保存
Cursor cursor=db.query("TestUsers", new String[]{"name","sex"}, null,null, null, null, null);
//得到总条数
int count = cursor.getCount();
//声明两个String数组来保存性别与性别
String [] Name =new String[count];
String [] Sex =new String[count];
//声明一个初始变量i为0
int i =0;
//当有数据的时候获取到name列与sex列的总数,从游标第一个到最后一个进行移动获取数据
if (cursor.getCount() >0){
int nameIndex = cursor.getColumnIndex("name");
int sexIndex = cursor.getColumnIndex("sex");
for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){
Name[i] = cursor.getString(nameIndex);
Sex[i]=cursor.getString(sexIndex);
i++;
}
}
//通过另一个变量j对上面得到的两个数组进行分别的遍历
for(int j =0; j < count; j++){
tvShowContent.append(Name[j]);
tvShowContent.append(" : ");
tvShowContent.append(Sex[j]);
tvShowContent.append("\n");
}
}
}
转载于:https://blog.51cto.com/4949301/1204616