Android小笔记数据库

//创建表

create table    person(_id  integer  primary key  autoincrement,name varchar(32),age  integer)

//插入数据

insert into person values(1,"bojie",18)

insert into person values(2,"pange",18)

//删除数据

delete from person where name="pange"

//查询数据

select  name  from person where _id=2

//修改数据

update person set name="pange+tanji"   where name="pange"

sqlite

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;

}

时间: 2024-11-05 21:51:52

Android小笔记数据库的相关文章

Android学习笔记 --- 数据库Sqlite

  Sqlite 是一款轻型的数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式开发中. Sqlite的数据类型:Typelessness(物类型),可以保存任何类型的数据到你所想要保存的任何表的任何列中,但它又支持常见的类型如:NULL,VARCHAR,TEXT,INTEGER,BLOG,CLOB....等等,唯一例外的是:integer primary key 此字段只能存储64为整数 在Android系统中,提供了SQLiteOpenHelper抽

Android小笔记之对话框形式修改日期

以对话框的形式弹出日期设置: 首先在xml中创建一个EditText输入框: <EditText android:id="@+id/et_time" android:layout_width="wrap_content" android:layout_height="wrap_content" //设置输入框点击事件 android:onClick="dateshow" /> 在主方法的onCreate中设置修改时

Android 小笔记

<!--     xml                --> android:visibility="gone"  可以隐藏 元素 xmlns:bootstrapbutton="http://schemas.android.com/apk/res-auto" 类似命名空间  可以使用自定义控件 <RelativeLayout>下    android:layout_alignParentLeft="true"  可以左对

Android小笔记Activity生命周期

Activity生命周期: onCreate()创建----->onStart()开始------>onResume()获取焦点----->Activityrunning 运行------>onPause()|-页面跳转---->App process killed----->onCreate()重新创建一个界面: |-失去焦点------->onStop()|-应用并没有停止按home键回到应用时-- -->onRestart()重新开始 |-应用停止--

Android小笔记之存储与读取

一.数据的保存----系统中 btn_ok.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String user = et_user.getText().toString().trim(); String pwd = et_pwd.getText().toString().trim(); if(user.isEmpty()||pwd.isEmpty()){ Toast.make

Android小笔记

public View getView(int position, View convertView, ViewGroup parent) { View convertView:启动时出现的值缓存在(View)convertView中 //如果当前为空,则加载布局 View view; if(cenvertView==null){ view = View.inflate(getApplicationContext(),R.layout.lv_item,null); } //如果不为空,则把缓存好

【Android】创建数据库的小工具

功能 方便将文本表格数据导入到数据库中去,从而避免手动去添加一条条的模拟数据. 使用方法 将文本表格放在恰当的位置,类似于: 文件位置:/assets/mock_table.csv: 文件内容: name#string, age#int, course#string xesam_1, 1, desc_A xesam_2, 2, desc_B xesam_3, 3, desc_C xesam_4, 4, desc_D xesam_5, 5, desc_E xesam_6, 6, desc_F xe

Android学习笔记(四一):SQLite的使用

SQLite是非常流行的嵌入式关系型数据库,轻载,速度快,而且是开源.在Android中,runtime提供SQLite,所以我们可以使用SQLite,而且是全集的SQLite.SQLite提供SQL接口,和一般的数据库一样.但是Android的API不采用JDBC,JDBC消耗太多的资源. SQLite支持绝大部分SQL-92标准,不支持:FOREIGN KEY constraints, nested transactions, RIGHT OUTER JOIN, FULL OUTER JOI

Android学习笔记(二十):回归简单的ListView

在之前连续对ListVew作了逐步深入的探讨,对于手持屏幕来讲,其实可以比较简单,如果别人愿意付钱,不在乎将代码再些一次,这是客户端的开发和复杂服务器的开发不同的地方.当然各人有各人的看法.绝大部分情况下,一个list元素可能左右各有一个widget就差不多,回归简约风格,这也是小尺寸屏幕和手指操作的特点. 在数据的传递,Java里面,具有<Key,Value>的Hash是非常重要的,可以方便增/删/改/查,如果我们不使用数据库存储,或者将数据存放在内存中,<Key,Value>是