1.Êý¾Ý¿âµÄ´´½¨ÔËÐÐÓë¸üÐÂ
1.1.´´½¨Ò»¸öÀà¼Ì³ÐSqliteOpenHelper

1.2.´´½¨¹¹Ôì·½·¨
/**
* Êý¾Ý¿â´´½¨Àà
public class DbSqliteOpenHelper extends SQLiteOpenHelper
{
* @param context ÉÏÏÂÎÄ
* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db
* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();
* @param version Êý¾Ý¿âµÄ°æ±¾
public DbSqliteOpenHelper(Context context, String
name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
* µ±Êý¾Ý¿â±»´´½¨Ê±,Ö´ÐÐ,
* Ö»»áÖ´ÐÐÒ»´Î
@Override
public void onCreate(SQLiteDatabase db) {
* µ±Êý¾Ý°æ±¾Éý¼¶Ê±Ö´ÐÐ,
* Êý¾Ý°æ±¾Ö»ÄÜÉý²»Äܽµ ´Ó1¿ªÊ¼
* ÕâÀï³£ÓÃÓÚ¸ü¸ÄÊý¾Ý¿âÖеıíµÄ½á¹¹,ÈçÌí¼ÓÁÐ,ɾ³ýÁÐ,Ö®ÀàµÄ,´´½¨Ðµıí
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
}
}
|
1.3.¸ü¸Ä¹¹Ôì·½·¨
/**
* @param context ÉÏÏÂÎÄ
* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db
* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();
* @param version Êý¾Ý¿âµÄ°æ±¾
public DbSqliteOpenHelper(Context context) {
super(context, "student.db", null,
1);
}
¸ü¸Äºó
* @param context ÉÏÏÂÎÄ
* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db
* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();
* @param version Êý¾Ý¿âµÄ°æ±¾ ÕâÀïµÄ°æ±¾±ØÐë´óÓÚ0,Èç¹ûΪ0¾Í»á±¨´í
public DbSqliteOpenHelper(Context context) {
super(context, "student.db", null,
1);
} |
Ô´ÂëÖеĽâÊÍ,Êý¾Ý¿â°æ±¾±ØÐë´óÓÚµÈÓÚ0,·ñÔò»áÅ׳öÒì³£

½«Êý¾Ý¿â°æ±¾ÉèÖÃΪ0,ÔËÐÐ

²»Äܽµ°æ±¾

1.4.ÔÚonCreate·½·¨Öд´½¨Êý¾Ý¿â±í
/**
* µ±Êý¾Ý¿â±»´´½¨Ê±,Ö´ÐÐ,
* Ö»»áÖ´ÐÐÒ»´Î
@Override
public void onCreate(SQLiteDatabase db) {
//´´½¨Êý¾Ý¿â±í
//sql create table students(_id integer primary
key, name varchar(30))
db.execSQL("create table students(_id integer
primary key, name varchar(30))");
Log.i(TAG, "onCreate ·½·¨Ö´ÐÐÁË");
} |
1.5.ÔÚActivityÖÐʵÀý»¯
/**
* Êý¾Ý¿â³õʼ»¯
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private DbSqliteOpenHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ʵÀý»¯
helper = new DbSqliteOpenHelper(this);
Log.i(TAG, "helper ʵÀý»¯");
//Ö´ÐÐÏ·½µÄ´úÂëºó²Å»á´´½¨Êý¾Ý¿â
helper.getWritableDatabase();
}
} |
´´½¨Êý¾Ý¿âºó²¢²»»á±»´´½¨,Ö»ÓÐÖ´ÐÐÁË,getReadDatabase»òÕßgetWriteDatabase(),
²Å»áÖ´ÐÐonCreateÖеķ½·¨

ÔËÐв鿴LOG

1.6.Êý¾ÝÒѾ´´½¨,²é¿´Êý¾Ý¿â
½«Êý¾Ý¿âÎļþµ¼³öµ½×ÀÃæ
SQLite Expert Professional 3´ò¿ª

1.7.ÐÞ¸ÄÊý¾Ý¿â°æ±¾,ͬÊÇÌí¼ÓÒ»ÁÐ
/**
* µ±Êý¾Ý°æ±¾Éý¼¶Ê±Ö´ÐÐ,
* Êý¾Ý°æ±¾Ö»ÄÜÉý²»Äܽµ ´Ó1¿ªÊ¼
* ÕâÀï³£ÓÃÓÚ¸ü¸ÄÊý¾Ý¿âÖеıíµÄ½á¹¹,ÈçÌí¼ÓÁÐ,ɾ³ýÁÐ,Ö®ÀàµÄ,´´½¨Ðµıí
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade ·½·¨Ö´ÐÐÁË");
//sql alter table students add gender varchar(10)
//Ìí¼ÓÁÐ
db.execSQL("alter table students add gender
varchar(10)");
} |
²é¿´ÈÕÖ¾

1.8.µ¼³öÊý¾Ý¿âÖеÄÎļþÔٴβ鿴

ÁÐÒѾÌí¼Ó³É¹¦
2.´«Í³·½Ê½²Ù×÷Êý¾Ý¿â
ʹÓÃsqlÀ´²Ù×÷Êý¾Ý¿â
/**
* ´«Í³Êý¾Ý¿â²Ù×÷¹¤¾ßÀà
public class StudentDao {
private static final String TAG = "StudentDao";
* ²Ù×÷Êý¾Ý¿âÀà
private DbSqliteOpenHelper helper;
public StudentDao(Context context){
helper = new DbSqliteOpenHelper(context);
}
* ²åÈë·½·¨
* @param name ÐÕÃû
* @param gender ÐÔ±ð
* @param stuno ѧºÅ
public void insert(String name,String gender,String
stuno){
//»ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getWritableDatabase();
String sql="insert into students values
(null,?,?,?)";
//Ìî³äռλ·û
Object [] bindArgs={name,gender,stuno};
//Ö´ÐÐSQL
db.execSQL(sql, bindArgs);
//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
* Ð޸ĸü¸Ä update
* @param name ÐÕÃû
* @param gender ÐÔ±ð
* @param stuno ѧºÅ
public void update(String name,String gender,String
stuno){
//»ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getWritableDatabase();
String sql="update students set gender=?,stuno=?
where name=?";
//Ìî³äռλ·û
Object [] bindArgs={gender,stuno,name};
//Ö´ÐÐSQL
db.execSQL(sql, bindArgs);
//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
* ɾ³ý
* @param name ÐÕÃû
public void delete(String name){
//»ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getWritableDatabase();
String sql="delete from students where
name=?";
//Ìî³äռλ·û
Object [] bindArgs={name};
//Ö´ÐÐSQL
db.execSQL(sql, bindArgs);
//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
* ²éѯȫ²¿
public void getAll(){
//»ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getReadableDatabase();
String sql="select _id,name,gender,stuno
from students";
//Ö´ÐÐSQL
Cursor cursor = db.rawQuery(sql, null);
while(cursor.moveToNext()){
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:"+_id+"name:"+name+",gender:"+gender+",stuno:"+stuno);
}
cursor.close();
//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
* ²éѯȫ²¿
public void getOne(String stuname){
//»ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getReadableDatabase();
String sql="select _id,name,gender,stuno
from students where name=?";
String[] selectionArgs = {stuname};
//Ö´ÐÐSQL
Cursor cursor = db.rawQuery(sql, selectionArgs);
while(cursor.moveToNext()){
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:"+_id+"name:"+name+",gender:"+gender+",stuno:"+stuno);
}
cursor.close();
//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
}
|
²âÊÔÀà
/**
* ²âÊÔ´«Í³·½Ê½Êý¾Ý¿â¹¤¾ßÀà
public class TestStudentDao extends AndroidTestCase{
private StudentDao studentDao;
@Override
protected void setUp() throws Exception {
studentDao = new StudentDao(getContext());
}
* ²âÊÔ²åÈë
public void testInsert(){
studentDao.insert("lisi", "man",
"heimaAndroid2179");
}
* ²âÊÔ²åÈë
public void testDelete(){
studentDao.delete("liunan");
}
* ²âÊÔÐÞ¸Ä
public void testUpdate(){
studentDao.update("lisi", "Å®",
"33");
}
* ²âÊÔ²éѯȫ²¿
public void testGetAll(){
studentDao.getAll();
}
* ²âÊÔ²éѯһ¸ö
public void testGetOne(){
studentDao.getOne("lisi");
}
} |
3.Êý¾Ý°æ±¾ÅжÏÓë¸üÐÂ
/**
* Êý¾Ý¿â´´½¨Àà
public class DbSqliteOpenHelper extends SQLiteOpenHelper
{
private static final String TAG = "DbSqliteOpenHelper";
* @param context ÉÏÏÂÎÄ
* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db
* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();
* @param version Êý¾Ý¿âµÄ°æ±¾ ÕâÀïµÄ°æ±¾±ØÐë´óÓÚ0,Èç¹ûΪ0¾Í»á±¨´í
public DbSqliteOpenHelper(Context context) {
super(context, "student.db", null,4);
}
* µ±Êý¾Ý¿â±»´´½¨Ê±,Ö´ÐÐ,
* Ö»»áÖ´ÐÐÒ»´Î
* µÚ¶þÉÁÔËÐÐÊǾͲ»»áÖ´ÐÐÁË
@Override
public void onCreate(SQLiteDatabase db) {
int version = db.getVersion();
Log.i(TAG, "version:"+version);
Log.i(TAG, "onCreate ·½·¨Ö´ÐÐÁË");
if(version==0){
db.execSQL("create table students(_id integer
primary key autoincrement, name varchar(30),gender
varchar(10),stuno varchar(50))");
Log.i(TAG, "version=0Ö´ÐÐÁË");
}else{
//´´½¨Êý¾Ý¿â±í
//sql create table students(_id integer primary
key, name varchar(30))
db.execSQL("create table students(_id integer
primary key autoincrement, name varchar(30))");
Log.i(TAG, "version²»µÈ0Ö´ÐÐÁË");
}
}
* µ±Êý¾Ý°æ±¾Éý¼¶Ê±Ö´ÐÐ,
* Êý¾Ý°æ±¾Ö»ÄÜÉý²»Äܽµ ´Ó1¿ªÊ¼
* ÕâÀï³£ÓÃÓÚ¸ü¸ÄÊý¾Ý¿âÖеıíµÄ½á¹¹,ÈçÌí¼ÓÁÐ,ɾ³ýÁÐ,Ö®ÀàµÄ,´´½¨Ðµıí
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade ·½·¨Ö´ÐÐÁË");
Log.i(TAG, oldVersion+"");
Log.i(TAG, newVersion+"");
//Ëã³öР¾É°æ±¾µÄ²î
int difference = newVersion-oldVersion;
switch (difference) {
case 1:
db.execSQL("alter table students add gender
varchar(10)");
Log.i(TAG, difference+"");
break;
case 2:
db.execSQL("alter table students add gender
varchar(10))");
db.execSQL("alter table students add stuno
varchar(50))");
Log.i(TAG, difference+"");
break;
default:
break;
}
}
} |
4.ʹÓÃAndroidÌṩµÄAPIÀ´²Ù×÷Êý¾Ý¿â
/**
* ʹÓÃAndroidÖеÄAPIÀ´Ö´ÐвÙ×÷Êý¾Ý¿â
public class StudentDao2 {
private static final String TAG = "StudentDao2";
* ²Ù×÷Êý¾Ý¿âÀà
private DbSqliteOpenHelper helper;
public StudentDao2(Context context) {
helper = new DbSqliteOpenHelper(context);
}
* ²åÈë·½·¨
* @param name
* ÐÕÃû
* @param gender
* ÐÔ±ð
* @param stuno
* ѧºÅ
public long insert(String name, String gender,
String stuno) {
// »ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getWritableDatabase();
// Ìî³äռλ·û
ContentValues values = new ContentValues();
values.put("name", name);
values.put("gender", gender);
values.put("stuno", stuno);
String nullColumnHack = "values(null,?,?,?)";
// Ö´ÐÐSQL
long insert = db.insert("students",
nullColumnHack, values);
// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
return insert;
}
* Ð޸ĸü¸Ä update
* @param name
* ÐÕÃû
* @param gender
* ÐÔ±ð
* @param stuno
* ѧºÅ
public int update(String name, String gender,
String stuno) {
// »ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "update students set gender=?,stuno=?
where name=?";
// Ìî³äռλ·û
ContentValues values = new ContentValues();
values.put("gender", gender);
values.put("stuno", stuno);
// Ö´ÐÐSQL
int update = db.update("students",
values, " name=?", new String[]{name});
// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
return update;
}
* ɾ³ý
* @param name
* ÐÕÃû
public int delete(String name) {
// »ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getWritableDatabase();
// Ö´ÐÐSQL
int delete = db.delete("students",
" name=?", new String[]{name});
// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
return delete;
}
* ²éѯȫ²¿
public void getAll() {
// »ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getReadableDatabase();
String sql = "select _id,name,gender,stuno
from students";
// Ö´ÐÐSQL
Cursor cursor = db.query("students",
new String[]{"_id","name","gender","stuno"},
null, null, null, null, null);
while (cursor.moveToNext()) {
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:" + _id + "name:"
+ name + ",gender:" + gender
+ ",stuno:" + stuno);
}
cursor.close();
// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
* ²éѯȫ²¿
public void getOne(String stuname) {
// »ñÈ¡Êý¾Ý
SQLiteDatabase db = helper.getReadableDatabase();
// Ö´ÐÐSQL
Cursor cursor = db.query("students",
new String[]{"_id","name","gender","stuno"},
"name =?", new String[]{stuname},
null, null, null);
while (cursor.moveToNext()) {
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:" + _id + "name:"
+ name + ",gender:" + gender
+ ",stuno:" + stuno);
}
cursor.close();
// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
db.close();
}
} |
²âÊÔ
/**
* ²âÊÔ´«Í³·½Ê½Êý¾Ý¿â¹¤¾ßÀà
public class TestStudentDao2 extends AndroidTestCase{
private static final String TAG = "TestStudentDao2";
private StudentDao2 studentDao2;
@Override
protected void setUp() throws Exception {
studentDao2 = new StudentDao2(getContext());
}
* ²âÊÔ²åÈë
public void testInsert(){
long result = studentDao2.insert("lisi",
"man", "heimaAndroid2179");
Log.i(TAG, result+"");
}
* ²âÊÔ²åÈë
public void testDelete(){
int delete = studentDao2.delete("aa");
Log.i(TAG, delete+"");
}
* ²âÊÔÐÞ¸Ä
public void testUpdate(){
int update = studentDao2.update("lisi",
"hh", "33");
Log.i(TAG, update+"");
}
* ²âÊÔ²éѯȫ²¿
public void testGetAll(){
studentDao2.getAll();
}
* ²âÊÔ²éѯһ¸ö
public void testGetOne(){
studentDao2.getOne("gh");
}
} |
5.´´½¨Ò»¸öѧÉúÐÅϢ¼Èë,ʹÓÃListViewչʾÐÅÏ¢baseAdapter



²¼¾Ö
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="ѧÉúÐÅÏ¢¹ÜÀíϵͳ"
android:textColor="#77ff0000"
android:textSize="29sp" />
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="ÇëÊäÈëѧÉúÐÕÃû" />
<!-- ÐÔ±ð -->
<RadioGroup
android:id="@+id/rgp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<!-- ÐÔ±ðÄÐ -->
<RadioButton
android:id="@+id/rb_male"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="male" />
<!-- ÐÔ±ðÅ® -->
<RadioButton
android:id="@+id/rb_female"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="female" />
</RadioGroup>
<!-- ±£´æ -->
<Button
android:id="@+id/btn_save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="±£´æ" />
<!-- ²éѯ -->
<Button
android:id="@+id/btn_querty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="²éѯȫ²¿Ñ§ÉúÐÅÏ¢" />
<ListView
android:id="@+id/lv_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#ff0000"
android:dividerHeight="2dp">
</ListView>
</LinearLayout>
|
ListViewҪʹÓõIJ¼¾Ö
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/iv_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_margin="20dp"
android:src="@drawable/mr" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_toRightOf="@id/iv_sex"
>
<TextView
android:id="@+id/tv_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ѧºÅ" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_no"
android:text="ÐÕÃû" />
<ImageView
android:id="@+id/iv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_margin="20dp"
android:src="@drawable/delete" />
</RelativeLayout>
</RelativeLayout>
|
Êý¾Ý¿â´´½¨Àà
/**
* Êý¾Ý¿â´´½¨Àà,Óëά»¤µÄÀà ¼Ì³ÐSQLiteOpenHelper
public class StudentSqliteOpenHelper extends
SQLiteOpenHelper {
private static final String TAG = "StudentSqliteOpenHelper";
public StudentSqliteOpenHelper(Context context)
{
super(context, "student.db", null,
2);
}
* ´´½¨Êý¾Ý¿âʱ,Ö´ÐÐÒ»´Î,Ö»Ö´ÐÐÒ»´Î
* ÓÃÀ´´´½¨Êý¾Ý±í
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(TAG, "onCreateÖ´ÐÐÁË");
//»ñÈ¡ÔÀ´µÄ°æ±¾,»ñÈ¡²»µ½Îª0
int version = db.getVersion();
if(version==0){
//´´½¨±í
String sql= "create table students ( _id
integer primary key autoincrement, name varchar(30),gender
varchar(10))";
db.execSQL(sql);
}else{
//´´½¨±í
String sql= "create table students ( _id
integer primary key autoincrement, name varchar(30))";
db.execSQL(sql);
}
}
* µ±Êý¾Ý¿â°æ±¾·¢Éú±ä»¯Ê±Ö´ÐÐ
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
Log.i(TAG, "onUpgradeÖ´ÐÐÁË");
switch (oldVersion) {
case 1:
String sql= "alter table students add gender
varchar(10)";
db.execSQL(sql);
break;
case 2:
break;
default:
break;
}
}
} |
ʵÌåÀà
/**
* ѧÉúµÄ·â×°Àà
public class Student {
* ID
private int id;
* ÐÕÃû
private String name;
* ÐÔ±ð
private String gender;
public Student() {
super();
}
public Student(int id, String name, String gender)
{
super();
this.id = id;
this.name = name;
this.gender = gender;
}
public String getGender() {
return gender;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
} |
Êý¾Ý¿â¹¤¾ßÀà
/**
* ѧÉúÊý¾Ý¿â·ÃÎʹ¤¾ßÀà
public class StudentDao {
* Êý¾Ý¿â´´½¨¸üÐÂÀà
private StudentSqliteOpenHelper helper;
public StudentDao(Context context) {
helper = new StudentSqliteOpenHelper(context);
}
* ²åÈëÒ»Ìõ¼Ç¼
* @param name
* ÐÕÃû
* @param gender
* ÐÔ±ð
* @return ·µ»Ø²åÈëºóµÄ_id
public long insert(String name, String gender)
{
// »ñÈ¡Êý¾Ý¿â
SQLiteDatabase db = helper.getWritableDatabase();
// ²åÈëµÄÁÐ
String nullColumnHack = "values(null,?,?)";
// ռλ·û
ContentValues values = new ContentValues();
values.put("name", name);
values.put("gender", gender);
// Ö´ÐÐ
long insert = db.insert("students",
nullColumnHack, values);
// ¹Ø±ÕÁ¬½Ó
db.close();
return insert;
}
* ÐÞ¸ÄÒ»Ìõ¼Ç¼
* @param name
* ÐÕÃû
* @param gender
* ÐÔ±ð
* @return ·µ»Ø²åÈëºóµÄ_id
public long update(String name, String gender)
{
// »ñÈ¡Êý¾Ý¿â
SQLiteDatabase db = helper.getWritableDatabase();
// ²åÈëµÄÁÐ
// ռλ·û
ContentValues values = new ContentValues();
values.put("gender", gender);
// Ö´ÐÐ
int update = db.update("students",
values, "name = ?",
new String[] { name });
// ¹Ø±ÕÁ¬½Ó
db.close();
return update;
}
* ɾ³ýÒ»Ìõ¼Ç¼
* @param name
* ÐÕÃû
* @return ·µ»ØÉ¾³ýºóµÄ_id
public int delete(String name) {
// »ñÈ¡Êý¾Ý¿â
SQLiteDatabase db = helper.getWritableDatabase();
// Ö´ÐÐ
int delete = db.delete("students",
"name = ?", new String[] { name });
// ¹Ø±ÕÁ¬½Ó
db.close();
return delete;
}
* ²éѯȫ²¿Ñ§ÉúÐÅÏ¢
* @return
public List<Student> getAll() {
// ÈÝÆ÷
List<Student> list = new ArrayList<Student>();
// »ñÈ¡Êý¾Ý¿â
SQLiteDatabase db = helper.getReadableDatabase();
String[] columns = { "_id", "name",
"gender" };
Cursor cursor = db.query("students",
columns, null, null, null, null,
null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
// Ìí¼Óµ½¼¯ºÏÖÐ
list.add(new Student(id, name, gender));
}
// ¹Ø±ÕÓαê
cursor.close();
// ¹Ø±Õ
db.close();
return list;
}
} |
Activity
/**
* ѧÉú¹ÜÀíÐÅϢϵͳActivity
* ²½Öè
* 1.»ñÈ¡Óû§ÊäÈëÐÕÃûÓëÑ¡ÔñµÄÐÔ±ð
* 2.ÅжÏÊÇ·ñΪ¿Õ,Ϊ¿Õ¾ÍÌáʾ,²»Îª¿Õ
* 3.±£´æÊý¾Ý
* 4.µã»÷²éѯ,ÔÚÏ·½µÄListViewÖÐÏÔʾËùÓеÄѧÉúÐÅÏ¢
* 5.ΪListViewÉèÖÃBaseAdapter
* 6.ʵÏÖgetCountÓëgetView·½·¨
* 7.·µ»Øview
* 8.µã»÷ɾ³ý,µ¯³öÌáʾ¶Ô»°¿ò,
* 9.È¡ÏûʲôҲ²»×ö,È·¶¨¾Íɾ³ýµ±Ç°¼Ç¼
public class MainActivity extends Activity implements
OnClickListener {
* ÐÕÃû
private EditText et_name;
* ÐÔ±ð
private RadioGroup rgp;
* ±£´æ
private Button btn_save;
* ²éѯ
private Button btn_querty;
* ѧÉúÁбí
private ListView lv_item;
* ѧÉú±íÊý¾Ý¿â²Ù×÷Àà
private StudentDao studentDao;
* ѧÉúÁбí
private List<Student> list;
* ѧÉúÁбíÊÊÅäÆ÷
private StuBaseAdapter stuBaseAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_name = (EditText) findViewById(R.id.et_name);
rgp = (RadioGroup) findViewById(R.id.rgp);
btn_save = (Button) findViewById(R.id.btn_save);
btn_querty = (Button) findViewById(R.id.btn_querty);
lv_item = (ListView) findViewById(R.id.lv_item);
* ³õʼ»¯Êý¾Ý¿âѧÉú±íµÄ¹¤¾ßÀà
studentDao = new StudentDao(this);
* ÉèÖüàÌýʼþ
btn_save.setOnClickListener(this);
btn_querty.setOnClickListener(this);
}
* µ¥»÷ʼþ¼àÌýÆ÷
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_save:
// ±£´æ
save();
break;
case R.id.btn_querty:
// ²éѯ
query();
break;
}
}
* ²éѯѧÉúÁбí
private void query() {
refresh();
}
private void refresh() {
* ²éѯȫ²¿Ñ§ÉúÐÅÏ¢
list = studentDao.getAll();
if (stuBaseAdapter == null) {
// ÅÐ¶Ï Îª¿Õ¾Ínew ,ΪListViewÉèÖÃÊÊÅäÆ÷
stuBaseAdapter = new StuBaseAdapter();
lv_item.setAdapter(stuBaseAdapter);
} else {
// ֪ͨListViewÁбí¸Ä±ä
stuBaseAdapter.notifyDataSetChanged();
}
}
* ±£´æÑ§ÉúÐÅÏ¢
private void save() {
// »ñȡѧÉúÊäÈëµÄÐÅÏ¢
String name = et_name.getText().toString().trim();
// ÅжÏ
if (TextUtils.isEmpty(name)) {
Toast.makeText(this, "ѧÉúÐÕÃû²»ÄÜΪ¿Õ", Toast.LENGTH_SHORT).show();
return;
}
// »ñÈ¡ÐÔ±ð
String gender = "male";
switch (rgp.getCheckedRadioButtonId()) {
case R.id.rb_male:
gender = "male";
break;
case R.id.rb_female:
gender = "female";
break;
}
// ¿ªÊ¼±£´æ
long insert = studentDao.insert(name, gender);
if (insert > 0) {
Toast.makeText(this, "±£´æ³É¹¦", Toast.LENGTH_SHORT).show();
et_name.setText("");
} else {
Toast.makeText(this, "±£´æÊ§°Ü", Toast.LENGTH_SHORT).show();
}
}
* ѧÉúÁбíÊÊÅäÆ÷
private class StuBaseAdapter extends BaseAdapter
{
private static final String TAG = "StuBaseAdapter";
@Override
public int getCount() {
return list.size();
}
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
Log.i(TAG, position + "");
View view;
if (convertView == null) {
view = View.inflate(MainActivity.this, R.layout.stu_item,
null);
} else {
view = convertView;
}
// µÃµ½Ñ§Éú¶ÔÏó
final Student student = list.get(position);
ImageView iv_sex = (ImageView) view.findViewById(R.id.iv_sex);
if ("male".equals(student.getGender()))
{
iv_sex.setImageResource(R.drawable.mr);
} else if ("female".equals(student.getGender()))
{
iv_sex.setImageResource(R.drawable.miss);
}
TextView tv_no = (TextView) view.findViewById(R.id.tv_no);
tv_no.setText("񅧏:" + student.getId());
TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
tv_name.setText("ÐÕÃû:" + student.getName());
ImageView iv_delete = (ImageView) view.findViewById(R.id.iv_delete);
iv_delete.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// ¶Ô»°¿òÀ´ÌáʾÓû§ÊÇ·ñɾ³ý
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setTitle("ɾ³ý").setIcon(R.drawable.tools)
.setMessage("È·¶¨ÒªÉ¾³ýÕâÌõ¼Ç¼Âð");
builder.setPositiveButton("È·¶¨",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int
which) {
* ɾ³ý·½·¨
int delete = studentDao.delete(student.getName());
if (delete > 0) {
Toast.makeText(MainActivity.this, "ɾ³ý³É¹¦",
Toast.LENGTH_SHORT).show();
// Ë¢ÐÂÁбí
refresh();
} else {
Toast.makeText(MainActivity.this, "ɾ³ýʧ°Ü",
Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("È¡Ïû", null);
builder.create().show();
}
});
return view;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
}
} |
|