import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MyHelper extends SQLiteOpenHelper {
// 构造 version数据版本,是从1开始
public MyHelper(Context context) {
super(context, "day02.db", null, 1);
}
// 创建时调用,----创建表格
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table user(id integer primary key autoincrement,userName text,userAge text)";
db.execSQL(sql);
}
// 数据库升级时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 添加sex字段
db.execSQL("alter table user add column sex text");
}
}
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
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;
/**
* Sqlite数据库 数据库:
*
* Oracle,甲骨文,大型公司。 MySql,开源 SqlServer,微软,收费 Sqlite,适用于手机
*
* 特点: 体积小 几百K,速度快,C,,可以存储大数据,支持MySql语法 Android,Java可以反编译。
* 嵌套型的数据库,不用安装,android系统已经嵌入了。(ios) 关系型数据库,快。 sql语句: user表格,id userName,userAge
* 增 insert into user(userName,userAge)values(?,?); 删 delete from user where
* userName=? 改 update user set userAge=? where userName=? 查 select * from user
* select userName,userAge from user where userName=?
*
*
* Sqlite的用法:
*
* 1.用到一个类,SqliteOpenHelper,抽象类,用她的子类 2.重写三个方法:构造,oncreate,upgrade,更新
*
*
* 数据类型 integer char real blob
*
* @author Administrator
*
*/
public class MainActivity extends Activity implements OnClickListener {
private EditText name;
private EditText age;
private MyHelper myHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myHelper = new MyHelper(this);
// 下面这行才创建
myHelper.getReadableDatabase();
// myHelper.getWritableDatabase();
// 当手机内存不够的时候getWritableDatabase();保存,getReadableDatabase不报错
// 初始化界面
initViews();
}
private void initViews() {
name = (EditText) findViewById(R.id.name);
age = (EditText) findViewById(R.id.age);
Button add = (Button) findViewById(R.id.add);
Button dele = (Button) findViewById(R.id.dele);
Button modify = (Button) findViewById(R.id.modify);
Button query = (Button) findViewById(R.id.query);
add.setOnClickListener(this);
dele.setOnClickListener(this);
modify.setOnClickListener(this);
query.setOnClickListener(this);
}
@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;
}
// 点击事件
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
// 增加
String name1 = name.getText().toString();
String age1 = age.getText().toString();
/**
* 1.打开数据库 2.放数据 3.关闭
*/
SQLiteDatabase database = myHelper.getReadableDatabase();
database.execSQL("insert into user(userName,userAge)values(?,?)",
new String[] { name1, age1 });
database.close();
break;
// 删除
case R.id.dele:
String name2 = name.getText().toString();
SQLiteDatabase database1 = myHelper.getReadableDatabase();
String dele_sql = "delete from user where userName=?";
database1.execSQL(dele_sql, new String[] { name2 });
database1.close();
break;
case R.id.modify:
// 修改
String name3 = name.getText().toString();
String age3 = age.getText().toString();
SQLiteDatabase database2 = myHelper.getReadableDatabase();
String modify_sql = "update user set userAge=? where userName=?";
database2.execSQL(modify_sql, new String[] { age3, name3 });
database2.close();
break;
// 查询数据,根据名字查询数据
case R.id.query:
String name4 = name.getText().toString();
SQLiteDatabase database3 = myHelper.getReadableDatabase();
String query_sql = "select * from user";// 全查
// database2.execSQL(modify_sql, new String[]{age3,name3});
Cursor cursor = database3.rawQuery(query_sql, null);
// 查看数据
if (cursor != null && cursor.getCount() > 0) {
// 取出数据
while (cursor.moveToNext()) {
// raw
// String age =
// cursor.getString(columnIndex);columnIndex字段的索引
String name = cursor.getString(cursor
.getColumnIndex("userName"));
String age = cursor.getString(cursor
.getColumnIndex("userAge"));// columnName字段的名字
System.out.println("name--" + name + "--age--" + age);
}
} else {
Toast.makeText(MainActivity.this, "无数据", 0).show();
}
database3.close();
break;
default:
break;
}
}
}