package com.example.databasehelper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper //创建一个类DatabaseHelper继承SQLiteOpenHelper,让它作为一个访问Sqlite的助手类
{
//参数1.context 2.数据库名称 3.游标工厂 4.数据库版本
public DatabaseHelper(Context context, String name, CursorFactory factory,int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
//如果第一次访问数据库,该方法会被回掉,用于数据库表的创建
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table stu(id integer primary key autoincrement,name varchar(20),sex varchar(20))");
}
//如果数据库的版本有变化,该方法会被回掉,用于根系数据库
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
package com.example.sqlisttest;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
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;
import com.example.databasehelper.DatabaseHelper;
/**
* 练习SQLite的增删改查
*
*/
public class MainActivity extends Activity
{
private EditText et1;
private EditText et2;
private Button btn1,btn2,btn3,btn4; //添加,修改,删除,查看
private DatabaseHelper openhelper;
private SQLiteDatabase sqlite; //创建核心类,用于管理和操作SQLite数据库
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
openhelper=new DatabaseHelper(this, "1404b.db", null, 1); //传值
sqlite=openhelper.getWritableDatabase(); //获取一个只读数据库
init();
}
@Override
protected void onDestroy() {
super.onDestroy();
if(sqlite != null && sqlite.isOpen()) //退出程序时关闭SqLiteDatabase
{
sqlite.close();
}
}
public void init()
{
//找对象
et1=(EditText) findViewById(R.id.et1);
et2=(EditText) findViewById(R.id.et2);
btn1=(Button) findViewById(R.id.btn1);
btn2=(Button) findViewById(R.id.btn2);
btn3=(Button) findViewById(R.id.btn3);
btn4=(Button) findViewById(R.id.btn4);
btn1.setOnClickListener(l);
btn2.setOnClickListener(l);
btn3.setOnClickListener(l);
btn4.setOnClickListener(l);
}
OnClickListener l=new OnClickListener() {
public void onClick(View v) {
String name=et1.getText().toString();
String sex=et2.getText().toString();
switch(v.getId()){
case R.id.btn1: //添加
// if(name!=null && sex!=null && !name.equals("") && !sex.equals(""))
// {
// sqlite.execSQL("insert into stu(name,sex) values('"+name+"','"+sex+"')");
// Toast.makeText(MainActivity.this, "添加成功"+name+sex, 2000).show();
// }
ContentValues cv=new ContentValues(); //实例化一个contentvaluse,用来装载待插入的数据
cv.put("name", name); //添加姓名
cv.put("sex", sex); //添加性别
//根据添加的次数,返回值每次也会增加
long i=sqlite.insert("stu", null, cv); //执行插入数据 参数:1.数据库名表明 2.替补 3.添加的数据
break;
case R.id.btn4: //查看
Cursor c=sqlite.rawQuery("select * from stu where name='"+name+"'", null); //放到集合Cursor中
while(c.moveToNext()) //遍历集合
{
String name2=c.getString(c.getColumnIndex("name"));
String sex2=c.getString(c.getColumnIndex("sex"));
Log.e("name", name2);
Log.e("sex", sex2);
Toast.makeText(MainActivity.this, name2+"---"+sex2, 2000).show();
}
c.close(); //关闭结果集(一定要记得关闭)
// sqlite.query("stu", null, null, null, null, null, null); //查看表中所有数据
break;
case R.id.btn3: //删除
// sqlite.execSQL("delete from stu where name='"+name+"'");
String whereClause="name=?"; //条件
String[] whereArgs={name}; //要删除谁(就是?号的值)
//返回值为1时删除成功,0时删除失败
int i2=sqlite.delete("stu", whereClause, whereArgs); //执行删除数据 参数:1.表名 2.条件 3.要删除谁
Toast.makeText(MainActivity.this, i2+"", 2000).show();
break;
case R.id.btn2: //修改
// sqlite.execSQL("update stu set sex='"+sex+"' where sex='"+name+"'");
ContentValues cv1=new ContentValues(); //实例化contentvaluse,用来装载待修改的数据
cv1.put("sex", sex);
String whereClause1="name=?"; //修改条件
String[] whereArgs1={name}; //要删除谁(就是?号的值)
//返回值为1时修改成功,0时修改失败
int i3=sqlite.update("stu", cv1, whereClause1, whereArgs1); //执行修改 参数:1.表名 2.要修改的数据 3.条件 4.要修改谁(?号的值)
Log.e("name", name);
Log.e("sex", sex);
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;
}
}