package com.example.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
public PersonSQLiteOpenHelper(Context context) {
//"personDatabase"参数为数据库名
super(context, "personDatabase", null, 1);
}
//第一次新建数据库时调用的方法
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(id integer primary key, name varchar(12), number varchar(22))");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
package com.example.db;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.example.db.dao.PersonDao;
import com.example.db.domain.Person;
public class MainActivity extends Activity implements OnClickListener {
private Button button;
private PersonDao dao;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
public void onClick(View v) {
dao = new PersonDao(this);
List<Person> persons = new ArrayList<Person>();
persons = dao.findAll();
for (Person person: persons) {
System.out.println(person.toString());
}
}
}
package com.example.db.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.example.db.PersonSQLiteOpenHelper;
import com.example.db.domain.Person;
public class PersonDao {
SQLiteOpenHelper helper;
public PersonDao(Context context) {
helper = new PersonSQLiteOpenHelper(context);
}
//插入一条信息到数据库
public long add(String name, String number, int id) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
values.put("id", id);
long result = db.insert("person", null, values);
db.close();
return result;
}
//查询一条信息是不是存在
public boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
//返回结果集
Cursor cursor = db.query("person", null, "name=?", new String[]{name}, null, null, null);
//curosr.moveToNext()查询指向当前的记录是不是存在,存在返回true,不存在返回false;
boolean result = cursor.moveToNext();
db.close();
return result;
}
//更新一条信息
public int update(String name, String newnumber) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("number", newnumber);
//number为返回更新的行数
int id = db.update("person", values, "name=?", new String[]{name});
db.close();
return id;
}
//删除一条信息
public int delete(String name) {
SQLiteDatabase db = helper.getWritableDatabase();
//number返回删除的行数
int id = db.delete("person", "name=?", new String[]{name});
db.close();
return id;
}
//反回全部数据查询信息
public List<Person> findAll() {
SQLiteDatabase db = helper.getReadableDatabase();
//查询所有内容返回到cursor结果集
Cursor cursor = db.query("person", new String[]{"name","id","number"}, null, null, null, null, null);
List<Person> persons = new ArrayList<Person>();
//cursor.moveToNext()向下移动一行位置
while (cursor.moveToNext()) {
//查询当前的那一行id在的那一列的值出来
int id = cursor.getInt(cursor.getColumnIndex("id"));
//查询当前的那一行number在的那一列的值出来
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id, name, number);
persons.add(p);
}
return persons;
}
}
全部代码:
package com.example.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
public PersonSQLiteOpenHelper(Context context) {
super(context, "person", null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(id integer primary key, name varchar(12), number varchar(22))");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
package com.example.db;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.example.db.dao.PersonDao;
import com.example.db.domain.Person;
public class MainActivity extends Activity implements OnClickListener {
private Button button;
private PersonDao dao;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
public void onClick(View v) {
dao = new PersonDao(this);
List<Person> persons = new ArrayList<Person>();
persons = dao.findAll();
for (Person person: persons) {
System.out.println(person.toString());
}
}
}
package com.example.db.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.example.db.PersonSQLiteOpenHelper;
import com.example.db.domain.Person;
public class PersonDao {
SQLiteOpenHelper helper;
public PersonDao(Context context) {
helper = new PersonSQLiteOpenHelper(context);
}
public long add(String name, String number, int id) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
values.put("id", id);
long result = db.insert("person", null, values);
db.close();
return result;
}
public boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("person", null, "name=?", new String[]{name}, null, null, null);
boolean result = cursor.moveToNext();
db.close();
return result;
}
public int update(String name, String newnumber) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("number", newnumber);
int id = db.update("person", values, "name=?", new String[]{name});
db.close();
return id;
}
public int delete(String name) {
SQLiteDatabase db = helper.getWritableDatabase();
int id = db.delete("person", "name=?", new String[]{name});
db.close();
return id;
}
public List<Person> findAll() {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("person", new String[]{"name","id","number"}, null, null, null, null, null);
List<Person> persons = new ArrayList<Person>();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id, name, number);
persons.add(p);
}
return persons;
}
}