zoukankan      html  css  js  c++  java
  • android中sqlite数据库的基本使用和添加多张表

    看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大家如何在sqlite数据库中建立多张表。

    首先是如何建立数据库和表:

    建立一个类继承SQLiteOpenHelper,即:

    public class ReaderOpenHelper extends SQLiteOpenHelper

    然后添加构造方法:

    public ReaderOpenHelper(Context context) {
            
            super(context, "people.db", null, 1);
            
        }

    people.db是数据库名字,1是数据库版本。

    然后在该类实现以下两个方法:

    复制代码
    @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
         db.execSQL("create table readers(renumber integer primary key,rename text,retype text,reage text,rephone text,usename integer,password integer,createtime text)");
         db.execSQL("create table books(booknumber integer primary key,bookname text,booktype text,bookeditor text,intime text,incounts integer)");
        }
    复制代码

    db.execSQL的作用是执行SQL语句,create table readers是创建一个叫readers的表,括号里就是各个字段名和值类型。

    这里创建了两张表。另一张叫books

    继续实现:

    复制代码
    @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
            db.execSQL("drop if table exists readers");
            db.execSQL("drop if table exists  books");
            onCreate(db);
        }
    复制代码

    执行Sql语句"drop if table exists 表名"

    这样你的sqlite数据库和两张表就创建完成了。

    接下来再建一个数据库manager类,如:

    public class ReaderManager 

    添加一个构造方法

    public ReaderManager(Context conetxt) {
            this.context = context;
            readerOpenHelper = new ReaderOpenHelper(conetxt);
        }

    然后添加表的操作方法:

    复制代码
    package com.zhou.db;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.zhou.utils.Books;
    import com.zhou.utils.Reader;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.util.Log;
    
    public class ReaderManager {
        ReaderOpenHelper readerOpenHelper;
        Context context;
    
        public ReaderManager(Context conetxt) {
            this.context = context;
            readerOpenHelper = new ReaderOpenHelper(conetxt);
        }
    
        // 增加读者
        public void addSQL(Reader reader) {
            SQLiteDatabase db = null;
            try {
                db = readerOpenHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("renumber", reader.getReNumber());
                values.put("rename", reader.getName());
                values.put("retype", reader.getSex());
                values.put("reage", reader.getAge());
                values.put("rephone", reader.getPhoneNumber());
                values.put("createtime", reader.getCreateTime());
                values.put("usename", reader.getUseName());
                values.put("password", reader.getPassword());
                db.insert("readers", null, values);
            } catch (Exception e) {
                // TODO: handle exception
            } finally {
                db.close();
            }
        }
    
        // 增加图书
        public void bookAddSQL(Books book) {
            SQLiteDatabase db = null;
            try {
                db = readerOpenHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("booknumber", book.getBookNumber());
                values.put("bookname", book.getBookName());
                values.put("booktype", book.getBookType());
                values.put("bookeditor", book.getBookEditer());
                values.put("intime", book.getInTime());
                values.put("incounts", book.getCount());
                db.insert("books", null, values);
            } catch (Exception e) {
                // TODO: handle exception
            } finally {
                db.close();
            }
        }
    
        // 读者查询
        public List<Reader> selectSQL() {
            List<Reader> list = new ArrayList<Reader>();
            SQLiteDatabase db = null;
            // 获取一个光标对象
            Cursor cursor = null;
            try {
                db = readerOpenHelper.getReadableDatabase();
                cursor = db.query("readers", null, null, null, null, null, null);
                Reader reader = null;
                while (cursor.moveToNext()) {
                    reader = new Reader();
                    reader.setReNumber(cursor.getInt(cursor
                            .getColumnIndex("renumber")));
    
                    reader.setName(cursor.getString(cursor.getColumnIndex("rename")));
                    reader.setSex(cursor.getString(cursor.getColumnIndex("retype")));
                    reader.setAge(cursor.getString(cursor.getColumnIndex("reage")));
                    reader.setPhoneNumber(cursor.getString(cursor
                            .getColumnIndex("rephone")));
                    reader.setCreateTime(cursor.getString(cursor
                            .getColumnIndex("createtime")));
                    reader.setUseName(cursor.getInt(cursor
                            .getColumnIndex("usename")));
                    reader.setPassword(cursor.getInt(cursor
                            .getColumnIndex("password")));
                    list.add(reader);
                }
            } catch (Exception e) {
                // TODO: handle exception
            } finally {
                cursor.close();
                db.close();
            }
    
            return list;
        }
    
        // 图书查询
        public List<Books> bookSelectSQL() {
            List<Books> list = new ArrayList<Books>();
            SQLiteDatabase db = null;
            // 获取一个光标对象
            Cursor cursor = null;
            try {
                db = readerOpenHelper.getReadableDatabase();
                cursor = db.query("books", null, null, null, null, null, null);
                Books book = null;
                while (cursor.moveToNext()) {
                    book = new Books();
                    book.setBookNumber(cursor.getInt(cursor
                            .getColumnIndex("booknumber")));
                    book.setBookName(cursor.getString(cursor
                            .getColumnIndex("bookname")));
                    book.setBookType(cursor.getString(cursor
                            .getColumnIndex("booktype")));
                    book.setBookEditer(cursor.getString(cursor
                            .getColumnIndex("bookeditor")));
                    book.setInTime(cursor.getString(cursor.getColumnIndex("intime")));
                    book.setCount(cursor.getInt(cursor.getColumnIndex("incounts")));
                    Log.d("TAGG", cursor.getString(cursor.getColumnIndex("intime")));
                    list.add(book);
                }
            } catch (Exception e) {
                // TODO: handle exception
            } finally {
                cursor.close();
                db.close();
            }
    
            return list;
        }
    
        // 读者删除
        public void deleteSQL(final long id) {
            SQLiteDatabase db = null;
            try {
                db = readerOpenHelper.getWritableDatabase();
                db.delete("readers", "renumber=" + id, null);
            } catch (Exception e) {
    
            } finally {
                db.close();
            }
        }
    
        // 读者更新
    
        public void updateData(int id, String name, String sex, String age,
                String phoneNumber, int password) {
    
            SQLiteDatabase db = null;
            try {
                db = readerOpenHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("rename", name);
                values.put("retype", sex);
                values.put("reage", age);
                values.put("rephone", phoneNumber);
                values.put("password", password);
                db.update("readers", values, "renumber=" + id, null);
            } catch (Exception e) {
                // TODO: handle exception
            } finally {
                db.close();
            }
    
        }
    
        // public long getCount() {
        //
        // Cursor cursor = null;
        // long count = 0;
        // SQLiteDatabase db = null;
        // try {
        // db = readerOpenHelper.getWritableDatabase();
        // cursor = db.query("readers", null, null, null, null, null, null);
        //
        // if (null != cursor) {
        // count = cursor.getCount();
        // cursor.close();
        // }
        // } catch (Exception e) {
        // } finally {
        // db.close();
        // }
        // return count;
        // }
    
    }
  • 相关阅读:
    MyBatis insert 返回主键的方法
    Linux实时网络监控工具:iftop
    深入理解Spring MVC 思想
    spring启动时加载字典表数据放入map
    mysql PROCEDURE ANALYSE() 用法
    http://www.cnblogs.com/shihaiming/
    maven 多模块项目
    分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载-2)
    Nginx1.8.0版本平滑升级新版本1.9.7
    Linux 添加Nginx 到 service 启动
  • 原文地址:https://www.cnblogs.com/dogdogwang/p/10988922.html
Copyright © 2011-2022 走看看