1.继承类SQLiteOpenHelper:
public class MySQLiteHelper extends SQLiteOpenHelper
{
//重写构造方法
public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version)
{
super(context, name, factory, version);
}
//创建表
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE person(personid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),phone VARCHAR(20))" );
db.execSQL("CREATE TABLE student(personid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),phone VARCHAR(20))" );
}
//升级表(当Database的Version低于当前new里的Version,直接执行下面方法)
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
int v = newVersion - oldVersion;
switch (v)
{
case 3:
db.execSQL("ALTER TABLE person ADD salary3 VARCHAR(20)");
case 2:
db.execSQL("ALTER TABLE person ADD salary2 VARCHAR(20)");
case 1:
db.execSQL("ALTER TABLE person ADD salary1 VARCHAR(20)");
default:
break;
}
}
}
2.实现增删改查:
/**
*
CREATE TABLE person
(
personid INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(20),
phone VARCHAR(20)
)
DROP TABLE person //删除表
INSERT INTO person(name,phone) VALUES ("rongqin","1598088588") //插入
UPDATE person SET name="Andfeel" WHERE personid=2 //改
ALTER TABLE person ADD salary //增加列
DELETE FROM person WHERE name="Andfeel" //删除
SELECT * FROM person WHERE name="Andfeel"
SELECT phone,name FROM person
SELECT name,phone FROM person ORDER BY name ASC"//ASC升序 DESC降序
*
*/
public class MainActivity extends Activity implements OnClickListener
{
private TextView textView;
private MySQLiteHelper mDBHelper;
private MySQLiteHelper bHelper;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn__create_table).setOnClickListener(this);
findViewById(R.id.btn_delete_table).setOnClickListener(this);
findViewById(R.id.btn_alter_table).setOnClickListener(this);
findViewById(R.id.btn_insert).setOnClickListener(this);
findViewById(R.id.btn_delete).setOnClickListener(this);
findViewById(R.id.btn_update).setOnClickListener(this);
findViewById(R.id.btn_select).setOnClickListener(this);
textView = (TextView) findViewById(R.id.textView1);
//创建数据库
mDBHelper = new MySQLiteHelper(this, "one.db", null, 3);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btn__create_table:
btnCreateTable();
break;
case R.id.btn_delete_table:
btnDeleteTable();
break;
case R.id.btn_alter_table:
btnAlterTable();
break;
case R.id.btn_insert:
btnInsert();
break;
case R.id.btn_delete:
btnDelete();
break;
case R.id.btn_update:
btnUpdate();
break;
case R.id.btn_select:
btnSelect();
break;
default:
break;
}
}
private void btnSelect()//查
{
SQLiteDatabase db = mDBHelper.getWritableDatabase();
// Cursor cursor = db.rawQuery("SELECT * FROM person WHERE name = ?", new String[]{"rongqin"});
// cursor.moveToFirst();
Cursor cursor = db.query(
"person", //表名
new String[]{"phone","name"}, //查询的列名
"name=?", //查询条件
new String[]{"huangxx"}, //查询参数
null, null,
"phone DESC"); //排序,升序为ASC,降序为DESC
boolean hasdata = cursor.moveToFirst();//游标移到第一行
StringBuilder sb = new StringBuilder();
while(hasdata)//是否有数据
{
int columnIndex = cursor.getColumnIndex("name");//得到name的列数
String name = cursor.getString(columnIndex);//得到name这一列的值
int columnIndex2 = cursor.getColumnIndex("phone");
String phone = cursor.getString(columnIndex2);
sb.append("name:").append(name).append(" phone:").append(phone).append("--");
hasdata = cursor.moveToNext();//游标移动到下一行,判断是否有值
}
textView.setText(sb.toString());
}
private void btnUpdate()//改
{
SQLiteDatabase db = mDBHelper.getWritableDatabase();
// db.execSQL("UPDATE person SET phone='0592xxxxxx' WHERE personid=5");
ContentValues values = new ContentValues();
values.put("name", "haoyouduo");
values.put("phone", "666666");
db.update("person", values , "personid=?" , new String[]{"8"});
}
private void btnDelete()//删
{
SQLiteDatabase db = mDBHelper.getWritableDatabase();
// db.execSQL("DELETE FROM person WHERE name='Andfeel'");
db.delete("person","name = ? and personid = ?", new String[]{"haoyouduo" , "5"});
}
private void btnInsert()//增
{
SQLiteDatabase db = mDBHelper.getWritableDatabase();
// db.execSQL("INSERT INTO person(name,phone) VALUES ('rongqin',1598088588)");
ContentValues values = new ContentValues();
values.put("name", "huangxx");
values.put("phone", "158888");
db.insert("person", null , values );
}
private void btnAlterTable()//扩展表
{
}
private void btnDeleteTable()//删除表
{
}
private void btnCreateTable()//创建表
{
}
}
其他总结:
1.关闭数据源
/**
* 关闭数据源
*/
public void closeConnection()
{
if (mDb != null && mDb.isOpen())
mDb.close();
if (mDbHelper != null)
mDbHelper.close();
}
转载于:https://blog.51cto.com/glblong/1216877