[android] sql语句实现数据库的增删改查详解手机开发

Javaweb实现增删改查的步骤,1.加载jdbc的驱动,2.连接到数据库 3.准备sql语句,

Android中加载驱动已经完成了,拿到数据库的引用就是链接数据库了。

获取SQLitedatabase 对象,调用上一节中helper对象的getWritableDatabase()方法

调用SQLitedatabase 对象的execSQL()方法,执行sql语句

例如:insert into person (name) values(”taoshihan”)

      Select * from person

      Update person set name=”tsh” where id=1

      Delete from person where id=1

 

一般情况下,给数据访问层建个包叫dao,建个classPersonDao,创建构造方法,在里面初始化helper,参数是Context上下文,获取到SQLiteDatabase对象后记得要调用close()方法

 

Android中为了防止特殊字符,db对象提供了个带有占位符的方法execSQL(sql,Object[])sql语句参数部分用?代替,object[] 数组里面放参数变量。

查询部分,调用db对象的rawQuery(sql,selectArgs),参数:sql语句和String[] 数组,返回Cursor对象结果集,调用Cursor对象的moveToNext()判断是否能移动到下一条,返回bool,结果集也要close()

 

查询全部,返回一个List集合,list里面是每一个条目,包装一个Person对象放进去,新建一个domain包,里面定义属性和set get方法,同样是调用db对象的rawQuery方法,得到Cursor游标对象,while(cursor.moveToNext()){}循环一下,往下移动一条,如果到最后一条会false。循环里面调用Cursor对象的getInt(columnIndex)参数是字段索引,索引可以通过getColumnIndex(columnName),参数是字段名得到。Person业务对象加个toString()方法,方便 打印使用。

 

dao代码:

package com.tsh.database.dao; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import com.tsh.database.PersonSQLiteOpenHelper; 
import com.tsh.database.domain.Person; 
 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
 
public class PersonDao { 
    private PersonSQLiteOpenHelper helper; 
    public PersonDao(Context context){ 
        helper=new PersonSQLiteOpenHelper(context); 
         
    } 
    /** 
     * 增加一条 
     * @param name 
     */ 
    public void add(String name){ 
        SQLiteDatabase db=helper.getWritableDatabase(); 
        db.execSQL("insert into person (name) values(?)",new Object[]{name}); 
        db.close(); 
    } 
    /** 
     * 查询全部 
     * @return 
     */ 
    public List<Person> select(){ 
        List<Person> persons=new ArrayList<Person>(); 
        SQLiteDatabase db=helper.getReadableDatabase(); 
        Cursor cursor=db.rawQuery("select * from person", null); 
        while(cursor.moveToNext()){ 
            int id=cursor.getInt(cursor.getColumnIndex("id")); 
            String name=cursor.getString(cursor.getColumnIndex("name")); 
            Person person=new Person(id,name); 
            persons.add(person); 
        } 
         
        cursor.close(); 
        db.close(); 
        return persons; 
    } 
     
}

测试用例:

package com.tsh.database.test; 
 
import java.util.List; 
 
import com.tsh.database.PersonSQLiteOpenHelper; 
import com.tsh.database.dao.PersonDao; 
import com.tsh.database.domain.Person; 
 
import android.test.AndroidTestCase; 
 
public class TestPersonDb extends AndroidTestCase { 
    public void testPerson() throws Exception{ 
        PersonSQLiteOpenHelper helper =new PersonSQLiteOpenHelper(getContext()); 
        helper.getWritableDatabase(); 
    } 
    /** 
     * 测试添加 
     * @throws Exception 
     */ 
    public void testAdd() throws Exception{ 
        PersonDao dao=new PersonDao(getContext()); 
        dao.add("taoshihan"); 
    } 
    /** 
     * 测试查询 
     * @throws Exception 
     */ 
    public void testSelect() throws Exception{ 
        PersonDao dao=new PersonDao(getContext()); 
        List<Person> persons=dao.select(); 
        for(Person p:persons){ 
            System.out.println(p.toString()); 
        } 
    } 
     
}

[android] sql语句实现数据库的增删改查详解手机开发

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5496.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论