代码建库,在代码中动态建立数据库是比较常用的方法。列如在程序运行的过程中,当需要进行数据库 *** 作的时候,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序会自动建立数据库,然后再打开数据库。
在编写的时候,一般将所有对数据库的 *** 作封装到一个类中,因此只要调用这个类,就可以完成对数据库的添加、更改、删除和查询等 *** 作。
public class MysqLiteHelper extends sqliteOpenHelper { /** * version 1 * factory 数据查找的游标 默认null>>> cursor * name 数据库名 * @param context */ public MysqLiteHelper(Context context) { super(context,"my.db",null,1); // Todo auto-generated constructor stub } @OverrIDe public voID onCreate(sqliteDatabase db) { db.execsql("create table person (_ID integer primary key autoincrement,name varchar(32),age integer)"); }Dao层public class PersonService { private MysqLiteHelper helper; public PersonService(Context context) { helper = new MysqLiteHelper(context); } /** * 插入数据 * @param p */ public voID insert (Person p){ sqliteDatabase db = helper.getWritableDatabase(); //db.execsql("insert into person values("+p.getname()+","+p.getAge()+")"); if(db.isopen()){ db.execsql("insert into person(name,age)values (?,?)",new Object[]{p.getname(),p.getAge()}); } db.close(); } /** * 删除数据 * @param name */ public voID del (String name){ sqliteDatabase db = helper.getWritableDatabase(); if(db.isopen()){ db.execsql("delete from person where name=?",new String[]{name}); } db.close(); } /** * 修改数据 * @param oldname * @param newname */ public voID update (String oldname,String newname){ sqliteDatabase db = helper.getWritableDatabase(); if(db.isopen()){ db.execsql("update person set name=? where name=?",new String[]{newname,oldname}); } db.close(); } /** * 查询所有数据 * @return */ public List<Person> getAll(){ List<Person> Lists=new ArrayList<Person>(); sqliteDatabase db = helper.getReadableDatabase(); if(db.isopen()){ Cursor cursor = db.rawquery("select name,age from person",null); if(cursor!=null&&cursor.getCount()>0){ while(cursor.movetoNext()){ String name = cursor.getString(0); int age = cursor.getInt(1); Person person=new Person(name,age); Lists.add(person); } } cursor.close(); return Lists; } db.close(); return null; } /** * 查询对应的数据 * @param ID * @return */ public Person getPersonByID(int ID){ sqliteDatabase db = helper.getReadableDatabase(); Person person=new Person(); if(db.isopen()){ Cursor cursor = db.rawquery("select name,age from person where _ID=? ",new String[]{String.valueOf(ID)}); if(cursor!=null&&cursor.getCount()>0){ if(cursor.movetoLast()){ String name = cursor.getString(0); person.setname(name); int age = cursor.getInt(1); person.setAge(age); } } cursor.close(); return person; } db.close(); return null; }
一些简单sql *** 作语句:
//创建表
createtableperson(_IDintegerprimarykeyautoincrement,namevarchar(32),ageinteger)
//插入数据
insertintopersonvalues(1,"bojIE",18)
insertintopersonvalues(2,"pange",18)
//删除数据
deletefrompersonwherename="pange"
//查询数据
selectnamefrompersonwhere_ID=2
//修改数据
updatepersonsetname="pange+tanji"wherename="pange"
其实这些 *** 作都是基于一个继承了sqliteOpenHelper的子类
public class MysqLiteHelper extends sqliteOpenHelper { /** * version 1 * factory 数据查找的游标 默认null>>> cursor * name 数据库名 * @param context */ public MysqLiteHelper(Context context) { super(context,age integer)"); }总结
以上是内存溢出为你收集整理的SQLite数据库的建表以及存储全部内容,希望文章能够帮你解决SQLite数据库的建表以及存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)