zoukankan      html  css  js  c++  java
  • SQLite详解

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

     1 public class SQLiteTest extends SQLiteOpenHelper {
     2   final static String DB_NAME = "test.db";//数据库名
     3   private int version = 1;//数据库版本名
     4   public SQLiteTest(Context context) {//当在别处调用时,只要传上下文就行了
     5   super(context, DB_NAME, null, 1);
     6 }
     7 
     8 @Override
     9 public void onCreate(SQLiteDatabase db) {
    10   //建表
    11   String sql = "create table if not exists students(" +
    12   "s_id integer primary key autoincrement," +
    13   "s_name varchar(30)," +
    14   "s_sex integer," +
    15   "s_age integer)";
    16   db.execSQL(sql);
    17 }
    18 
    19 @Override
    20 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    21 // 升级数据库
    22   db.execSQL("drop table if exeits students");
    23   this.onCreate(db);
    24 
    25     }
    26 
    27 }

      

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

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

    三、对象操作类

      

     1 public class StudentDao {
     2   private Context context;
     3   SQLiteTest db ;
     4   SQLiteDatabase sb;
     5   public StudentDao(Context context) {
     6     super();
     7     this.context = context;
     8     db = new SQLiteTest(context);
     9     sb = db.getWritableDatabase();
    10   }
    11   //添加数据
    12   public void addStudent(Student s){
    13     String sql = "insert into students values(null,?,?,?)";
    14     sb.execSQL(sql,new Object[]{s.getS_name(),s.getS_sex(),s.getS_age()});
    15   }
    16   //
    17   public void delStudent(int id){
    18     String sql = "delete from students where s_id=?";
    19     sb.execSQL(sql,new Object[]{id});
    20   }
    21   //
    22   public void updateStudent(Student s){
    23     String sql = "update students set s_name=?,s_sex=?,s_age=? where s_id=?)";
    24     sb.execSQL(sql,new Object[]{s.getS_name(),s.getS_sex(),s.getS_age(),s.getS_id()});
    25   }
    26   //
    27   public List<Student> getAllStudent(){
    28     List<Student> list = new ArrayList<Student>();
    29     Student s;
    30     String sql = "select * from students";
    31     //Cursor邮标
    32     Cursor c = sb.rawQuery(sql, new String[]{});
    33     while (c.moveToNext()) {
    34       int id = c.getInt(c.getColumnIndex("s_id"));
    35       int sex = c.getInt(c.getColumnIndex("s_sex"));
    36       String showSex;
    37       if(sex==0){
    38         showSex="女";
    39       }else {
    40         showSex="男";
    41       }
    42       int age = c.getInt(c.getColumnIndex("s_age"));
    43       String name = c.getString(c.getColumnIndex("s_name"));
    44 
    45       s = new Student(id, name, age, showSex);
    46       list.add(s);
    47     }
    48 
    49     return list;
    50 
    51   }
    52 }

    五、在Activity中操作它:

      1 private Button btn1;
      2 ListView lv;
      3 StudentDao sd;
      4 List<Student> list;
      5 int sid;
      6 
      7 protected void onCreate(Bundle savedInstanceState) {
      8 super.onCreate(savedInstanceState);
      9 setContentView(R.layout.activity_main);
     10 init();
     11 
     12 }
     13 
     14 public void init() {
     15 sd = new StudentDao(MainActivity.this);
     16 list = sd.getAllStudent();
     17 btn1 = (Button) findViewById(R.id.add);
     18 lv = (ListView) findViewById(R.id.lv_student);
     19 lv.setAdapter(adapter);
     20 LongClick();
     21 }
     22 
     23 
     24 
     25 public void LongClick() {
     26 lv.setOnItemLongClickListener(new OnItemLongClickListener() {
     27 
     28 @Override
     29 public boolean onItemLongClick(AdapterView<?> parent, View view,
     30 int position, long id) {
     31 // TODO Auto-generated method stub
     32 sid = list.get(position).getS_id();
     33 AlertDialog.Builder confirm = new AlertDialog.Builder(
     34 MainActivity.this);
     35 confirm.setTitle("删除确认");
     36 confirm.setMessage("你确认要删除此信息吗?");
     37 confirm.setNegativeButton("否", new OnClickListener() {
     38 
     39 @Override
     40 public void onClick(DialogInterface dialog, int which) {
     41 // TODO Auto-generated method stub
     42 
     43 }
     44 });
     45 confirm.setPositiveButton("是", new OnClickListener() {
     46 
     47 @Override
     48 public void onClick(DialogInterface dialog, int which) {
     49 // TODO Auto-generated method stub
     50 
     51 sd.delStudent(sid);
     52 init();
     53 }
     54 });
     55 confirm.setCancelable(false);
     56 confirm.show();
     57 return true;
     58 }
     59 
     60 });
     61 }
     62 
     63 public void addStu(View v) {
     64 
     65 Intent intent = new Intent();
     66 intent.setClass(MainActivity.this, NewStuActivity.class);
     67 startActivity(intent);
     68 }
     69 
     70 BaseAdapter adapter = new BaseAdapter() {
     71 @Override
     72 public View getView(int position, View convertView, ViewGroup parent) {
     73 convertView = View.inflate(MainActivity.this, R.layout.student,
     74 null);
     75 TextView et_id = (TextView) convertView.findViewById(R.id.tv_id);
     76 TextView et_name = (TextView) convertView
     77 .findViewById(R.id.tv_name);
     78 TextView et_sex = (TextView) convertView.findViewById(R.id.tv_sex);
     79 TextView et_age = (TextView) convertView.findViewById(R.id.tv_age);
     80 
     81 et_id.setText(list.get(position).getS_id() + "");
     82 et_name.setText(list.get(position).getS_name());
     83 et_sex.setText(list.get(position).getShowSex());
     84 et_age.setText(list.get(position).getS_age() + "");
     85 return convertView;
     86 }
     87 
     88 @Override
     89 public long getItemId(int position) {
     90 // TODO Auto-generated method stub
     91 return position;
     92 }
     93 
     94 @Override
     95 public Object getItem(int position) {
     96 // TODO Auto-generated method stub
     97 return list.get(position);
     98 }
     99 
    100 @Override
    101 public int getCount() {
    102 // TODO Auto-generated method stub
    103 return list.size();
    104 }
    105 };

    xml略

    种一棵树最早的时间是十年前,其次是现在。
  • 相关阅读:
    关于BehaviorEditorPart 不显示的问题(出自msdn)
    webpart msdn 的位置
    Visual Studio 2008 具有一些新的报表功能和改进之处
    .NET Framework 类库
    Reporting Service 安装 及相关问题如:授予的权限不足解决办法
    单服务器部署&&双服务器部署
    Windows Server 2003安装完毕后汉字都为乱码“方框”,配置域控制器
    Dreamweaver MX显示汉字为乱码的解决方法
    名称以无效字符开头。处理资源 'http://localhost/发布了的/Default.aspx' 时出错。第 1 行,位置: 2
    【随感】my feeling about Long Ying
  • 原文地址:https://www.cnblogs.com/firefly-pengdan/p/5471140.html
Copyright © 2011-2022 走看看