一、新建SQLite操作类(继承SQLiteOpenHelper)

 public class SQLiteTest extends SQLiteOpenHelper {
  final static String DB_NAME = "test.db";//数据库名
  private int version = 1;//数据库版本名
  public SQLiteTest(Context context) {//当在别处调用时,只要传上下文就行了
  super(context, DB_NAME, null, 1);
} @Override
public void onCreate(SQLiteDatabase db) {
  //建表
  String sql = "create table if not exists students(" +
  "s_id integer primary key autoincrement," +
  "s_name varchar(30)," +
  "s_sex integer," +
  "s_age integer)";
  db.execSQL(sql);
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
  db.execSQL("drop table if exeits students");
  this.onCreate(db); } }

  

二、新建对象类(比如是学生数据库就新建学生类)

  注意点:get和set方法、构造方法

三、对象操作类

  

 public class StudentDao {
  private Context context;
  SQLiteTest db ;
  SQLiteDatabase sb;
  public StudentDao(Context context) {
    super();
    this.context = context;
    db = new SQLiteTest(context);
    sb = db.getWritableDatabase();
  }
  //添加数据
  public void addStudent(Student s){
    String sql = "insert into students values(null,?,?,?)";
    sb.execSQL(sql,new Object[]{s.getS_name(),s.getS_sex(),s.getS_age()});
  }
  //删
  public void delStudent(int id){
    String sql = "delete from students where s_id=?";
    sb.execSQL(sql,new Object[]{id});
  }
  //改
  public void updateStudent(Student s){
    String sql = "update students set s_name=?,s_sex=?,s_age=? where s_id=?)";
    sb.execSQL(sql,new Object[]{s.getS_name(),s.getS_sex(),s.getS_age(),s.getS_id()});
  }
  //查
  public List<Student> getAllStudent(){
    List<Student> list = new ArrayList<Student>();
    Student s;
    String sql = "select * from students";
    //Cursor邮标
    Cursor c = sb.rawQuery(sql, new String[]{});
    while (c.moveToNext()) {
      int id = c.getInt(c.getColumnIndex("s_id"));
      int sex = c.getInt(c.getColumnIndex("s_sex"));
      String showSex;
      if(sex==0){
        showSex="女";
      }else {
        showSex="男";
      }
      int age = c.getInt(c.getColumnIndex("s_age"));
      String name = c.getString(c.getColumnIndex("s_name"));       s = new Student(id, name, age, showSex);
      list.add(s);
    }     return list;   }
}

五、在Activity中操作它:

 private Button btn1;
ListView lv;
StudentDao sd;
List<Student> list;
int sid; protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init(); } public void init() {
sd = new StudentDao(MainActivity.this);
list = sd.getAllStudent();
btn1 = (Button) findViewById(R.id.add);
lv = (ListView) findViewById(R.id.lv_student);
lv.setAdapter(adapter);
LongClick();
} public void LongClick() {
lv.setOnItemLongClickListener(new OnItemLongClickListener() { @Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
sid = list.get(position).getS_id();
AlertDialog.Builder confirm = new AlertDialog.Builder(
MainActivity.this);
confirm.setTitle("删除确认");
confirm.setMessage("你确认要删除此信息吗?");
confirm.setNegativeButton("否", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub }
});
confirm.setPositiveButton("是", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub sd.delStudent(sid);
init();
}
});
confirm.setCancelable(false);
confirm.show();
return true;
} });
} public void addStu(View v) { Intent intent = new Intent();
intent.setClass(MainActivity.this, NewStuActivity.class);
startActivity(intent);
} BaseAdapter adapter = new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = View.inflate(MainActivity.this, R.layout.student,
null);
TextView et_id = (TextView) convertView.findViewById(R.id.tv_id);
TextView et_name = (TextView) convertView
.findViewById(R.id.tv_name);
TextView et_sex = (TextView) convertView.findViewById(R.id.tv_sex);
TextView et_age = (TextView) convertView.findViewById(R.id.tv_age); et_id.setText(list.get(position).getS_id() + "");
et_name.setText(list.get(position).getS_name());
et_sex.setText(list.get(position).getShowSex());
et_age.setText(list.get(position).getS_age() + "");
return convertView;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
};

xml略

SQLite详解的更多相关文章

  1. Android SQlite详解

    在项目开发中,我们或多或少都会用到数据库.在Android中,我们一般使用SQLite,因为Android在android.database.sqlite包封装了很多SQLite操作的API.我自己写 ...

  2. iOS SQLite详解

    这周比较忙,前几天都加班到11点左右,基本都是到家都是12点左右(稍稍的抱怨一下,免费加班,何为免费,就是任何补偿都没有,例如调休,加班薪,餐补等各项福利,是一点都没有呀)因为App要上线了!App上 ...

  3. IOS 数据存储之 SQLite详解

    在IOS开发中经常会需要存储数据,对于比较少量的数据可以采取文件的形式存储,比如使用plist文件.归档等,但是对于大量的数据,就需要使用数据库,在IOS开发中数据库存储可以直接通过SQL访问数据库, ...

  4. [转]ANDROID开发之SQLite详解

    SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...

  5. SQLite详解,案例,手册

    SQLite 存储类型 1.NULL 2.INTEGER 3.REAL 4.TEXT 5.BLOB 创建表 CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT N ...

  6. ANDROID开发之SQLite详解

    本文转自:http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html

  7. [Android新手区] SQLite 操作详解--SQL语法

    该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...

  8. windows phone 8.1开发SQlite数据库操作详解

    原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...

  9. C#操作SQLite方法实例详解

    用 C# 访问 SQLite 入门(1) CC++C#SQLiteFirefox  用 C# 访问 SQLite 入门 (1) SQLite 在 VS C# 环境下的开发,网上已经有很多教程.我也是从 ...

随机推荐

  1. iOS - (调用系统本机打电话功能)

    如下图所示,点击订单里的打电话 button 后,调用系统的打电话功能. 这个调用系统打电话功能有点简单,不需要遵守协议和代理什么的,直接在点击方法里写上几句代码就可以了. 下面来看看代码吧: 接下来 ...

  2. MVC3中 ViewBag、ViewData和TempData的使用和区别

    在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData.MVC3中保留了ViewData的使用.ViewBag 是动态类型(dynamic),ViewData 是 ...

  3. Git随记

    gulp 打包 把dist下的提交到构建环境 git status 看哪些发生了变化 git add . 添加当前文件夹下的文件 git commit -am "change file&qu ...

  4. PostgreSQL中initdb做了什么

    在使用数据库前,是启动数据库,启动数据库前是initdb(初始化数据库):一起来看一下initdb做了什么吧. 初始化数据库的操作为: ./initdb -D /usr/local/pgsql/dat ...

  5. http://codeforces.com/contest/555/problem/B

    比赛时虽然贪了心,不过后面没想到怎么处理和set的排序方法忘了- -,其实是和优先队列的仿函数一样的... 比赛后用set pair过了... #include <bits/stdc++.h&g ...

  6. [转]JqueryEasyUI教程入门篇

    什么是jQueryEasyUI? JqueryUI是一组基于jQuery的UI插件集合 学习jQueryEasyUI的条件? 必须掌握Jquery的基本语法知识 jQueryEasyUI的特点? 1. ...

  7. [转]关于安装hadoop中出现的的 $HADOOP_HOME is deprecated 的解决方法

    当前用户的.bash_profile在/home/用户/下,系统的.bash_profile在/etc/skel目录下; 默认可能是隐藏的:有人会问了,隐藏的我怎么打开它,一个简单的办法,直接使用vi ...

  8. JFreeChart在制作折线图

    JFreeChart在制作折线图的时候可以使用两种不同的方式 package Line; import java.awt.Color; import java.awt.Font; import org ...

  9. cf-282e

    “字典树”的变形,任意两数异或最大值,处理字典树的时候可以用递归,也可以用循环,下面有两个版本. C - Sausage Maximization Time Limit:2000MS Memory L ...

  10. Openstack的HA解决方案【替换原有的dashboard】

    0. 进入到/etc/haproxy/conf.d/目录下 mv 015-horizon.cfg 150-timaiaas.cfg 将原有的dashboard的ha配置文件做为自己的配置文件. 1. ...