建立数据库建立类继承SQLiteOpenHelper
public class SqliteHelp extends SQLiteOpenHelper {
private static final int VIRSION = 2;
public static final String STUDENT = "student";
private static final String TAG = "SqliteHelp";
public SqliteHelp(Context context) { //传一个参数即可
super(context, "student.db", null,VIRSION );
}
public interface Colums extends BaseColumns{ //封装
public static final String NAME = "name";
public static final String SEX = "sextext";
}
@Override
public void onCreate(SQLiteDatabase db) { //创建表
String sql = "create table "+STUDENT+
" (_id integer primary key autoincrement,"
+Colums.NAME+ " text,"+Colums.SEX+" text);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.d(TAG, "onUpgrade");
}
}
建立数据库操作类,用于数据库的增删改查
其中数据库的增加,删减,更新
public class SqlOperate {
private SqliteHelp helper;
public SqlOperate(Context context){
helper = new SqliteHelp(context);
}
public void inSert(String name,String sex){
SQLiteDatabase database = helper.getWritableDatabase();
String sql = "insert into student values(null,?,?);"; //插入列表的语句
Object[] args = {name,sex};
database.execSQL(sql, args);
database.close();
}
public void delete(String name){
SQLiteDatabase database = helper.getWritableDatabase();
String sql = "delete from student where name = ?;";
Object[] args = {name};
database.execSQL(sql, args);
database.close();
}
public void update(String name,String sex){
SQLiteDatabase database = helper.getWritableDatabase();
String sql = "update student set sex = ? where name = ?;";
Object[] args = {name,sex};
database.execSQL(sql, args);
}
}
数据库的查询
/**
* 查询数据库里的全部信息
* @return
*/
public List<Student> selectAll(){
SQLiteDatabase database = helper.getReadableDatabase();
String sql = "select * from student;";
Cursor cursor = database.rawQuery(sql, null);
ArrayList<Student> list = new ArrayList<Student>();
while (cursor.moveToNext()) {
String nameW = cursor.getString(cursor.getColumnIndex(Colums.NAME));
String sexW = cursor.getString(cursor.getColumnIndex(Colums.SEX));
Student student = new Student(nameW,sexW);
list.add(student);
}
cursor.close();
database.close();
return list;
}
/**
* 根据姓名查询
* @param name
* @return
*/
public Student selete(String name){ //查询语句返回值类型是Student类
SQLiteDatabase database = helper.getWritableDatabase();
String sql = "select * from student where name = ?;";
String[] args ={name};
Cursor cursor = database.rawQuery(sql,args);
Student student = new Student();
while (cursor.moveToNext()) { //遍历游标
String nameStu = cursor.getString(cursor.getColumnIndex(Colums.NAME));
String sexStu = cursor.getString(cursor.getColumnIndex(Colums.SEX));
student.setName(nameStu);
student.setSex(sexStu);
}
cursor.close();
database.close();
return student;
}
建立测试类,测试是否通过,测试类继承AndroidTestCase,并且样式表要改变
样式表增加
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.at.sql" />
和
<uses-library android:name="android.test.runner" />
public class Test extends AndroidTestCase{
public void database(){
SqliteHelp helper = new SqliteHelp(getContext());
helper.getWritableDatabase();
}
public void add(){
SqlOperate dao = new SqlOperate(getContext());
for (int i = 0; i < 8; i++) { //添加多条信息
String sex = " ";
if (i%2==0) { //对性别做判断
sex = "male";
}else{
sex = "female";
}
dao.inSert("万达达", sex);
}
}
}