SQLite数据库的建表以及存储

SQLite数据库的建表以及存储,第1张

概述代码建库,在代码中动态建立数据库是比较常用的方法。列如在程序运行的过程中,当需要进行数据库 *** 作的时候,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序会自动建立数据库,然后再打开数据库。 在编写的时候,一般将所有对数据库的 *** 作封装到一个类中,因此只要调用这个类,就可以完成对数据库的添加、更改、删除和查询等 *** 作。 public class MySqliteHelper extends SQ

代码建库,在代码中动态建立数据库是比较常用的方法。列如在程序运行的过程中,当需要进行数据库 *** 作的时候,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序会自动建立数据库,然后再打开数据库。

在编写的时候,一般将所有对数据库的 *** 作封装到一个类中,因此只要调用这个类,就可以完成对数据库的添加、更改、删除和查询等 *** 作。

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数据库的建表以及存储所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存