Android_SqLite数据库的创建与使用

一:数据库的创建:DBHelper

public class DBHelper extends SQLiteOpenHelper {

    private static final int VERSION = 1;
    private static String DB_NAME = "_name.db";
   
    private String CREATE_TABLE_PERSONS = "create table persons(_id integer primary key,prohibition integer,caseId integer,user_id integer, case_member_id integer,truename text,sex integer,mobile text," +
            "occupation text,birthday text,paper_type integer,paper_num text,employer text,address text,role integer," +
            "relation_member_id integer,type_name text,licence_type text,licence_num text,hxId text)";
   

    public DBHelper(Context context) {
        super(context, SPUtil.getInstance(context).getUserId() + DB_NAME, null, VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL(CREATE_TABLE_PERSONS);
      
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      
        db.execSQL("drop table if exists persons");     
       
        db.execSQL(CREATE_TABLE_PERSONS);
       
    }

    public DBHelper instance;

    public void closeDB() {
        super.close();
    }
}

二:建立工具类PersonDao

public class PersonDao {
    private static final String TAG = "PersonDao";
    Context context;
    SQLiteDatabase db;

    public PersonDao(Context context) {
        this.context = context.getApplicationContext();
        //再此自动创建表
        db = new DBHelper(context).getWritableDatabase();
    }

    public void updateOrInsert(Person person, String caseId) {
        ContentValues values = new ContentValues();
        values.put("caseId", caseId);
        values.put("case_member_id", person.getCase_member_id());
        values.put("truename", person.getTruename());
        values.put("sex", person.getSex());
        values.put("mobile", person.getMobile());
        values.put("occupation", person.getOccupation());
        values.put("birthday", person.getBirthday());
        values.put("paper_type", person.getPaper_type());
        values.put("paper_num", person.getPaper_num());
        values.put("employer", person.getEmployer());
        values.put("address", person.getAddress());
        values.put("role", person.getRole());
        values.put("relation_member_id", person.getRelation_member_id());
        values.put("type_name", person.getType_name());
        values.put("licence_type", person.getLicence_type());
        values.put("licence_num", person.getLicence_num());
        values.put("user_id", person.getUser_id());
        values.put("prohibition", person.getProhibition());
        values.put("hxId", person.getHxId());

        int r = db.update("persons", values, "caseId=? and case_member_id=?", new String[]{caseId, person.getCase_member_id() + ""});
        if (r > 0) {
            L.e("person更新成功:" + values);
            db.close();
        } else {
            values.put("prohibition", 1);
            long x = db.insert("persons", null, values);
            if (x > -1) {
                L.e("person插入成功:" + values);

            }
            db.close();
        }
    }

    public Person queryOnePerson(String caseId, String user_id) {
        Person person = null;
        Cursor cursor = db.query("persons", null, "caseId=? and user_id=?", new String[]{caseId, user_id}, null, null, null);
        while (cursor.moveToNext()) {
            person = new Person();
            person.setCase_member_id(cursor.getInt(cursor.getColumnIndex("case_member_id")));
            person.setTruename(cursor.getString(cursor.getColumnIndex("truename")));
            person.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
            person.setMobile(cursor.getString(cursor.getColumnIndex("mobile")));
            person.setOccupation(cursor.getString(cursor.getColumnIndex("occupation")));
            person.setBirthday(cursor.getString(cursor.getColumnIndex("birthday")));
            person.setPaper_type(cursor.getInt(cursor.getColumnIndex("paper_type")));
            person.setPaper_num(cursor.getString(cursor.getColumnIndex("paper_num")));
            person.setEmployer(cursor.getString(cursor.getColumnIndex("employer")));
            person.setAddress(cursor.getString(cursor.getColumnIndex("address")));
            person.setRole(cursor.getInt(cursor.getColumnIndex("role")));
            person.setRelation_member_id(cursor.getInt(cursor.getColumnIndex("relation_member_id")));
            person.setType_name(cursor.getString(cursor.getColumnIndex("type_name")));
            person.setLicence_type(cursor.getString(cursor.getColumnIndex("licence_type")));
            person.setLicence_num(cursor.getString(cursor.getColumnIndex("licence_num")));
            person.setUser_id(cursor.getInt(cursor.getColumnIndex("user_id")));
            person.setProhibition(cursor.getInt(cursor.getColumnIndex("prohibition")));
        }
        cursor.close();
        return person;
    }

    public ArrayList queryPersonByCaseId(String case_id) {//这个地方有bug,这样查询会查询出来很多个person,并且每个person会在不同的案件中有不同的身份
        Cursor cursor = db.query("persons", null, "caseId=?", new String[]{case_id}, null, null, null);
        System.out.println("查询数据库" + cursor.toString());
        ArrayList personsList = new ArrayList<>();
        while (cursor.moveToNext()) {
            System.out.println("查询数据库666" + cursor.toString());
            Person person = new Person();
            person.setCase_member_id(cursor.getInt(cursor.getColumnIndex("case_member_id")));
            person.setTruename(cursor.getString(cursor.getColumnIndex("truename")));
            person.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
            person.setMobile(cursor.getString(cursor.getColumnIndex("mobile")));
            person.setOccupation(cursor.getString(cursor.getColumnIndex("occupation")));
            person.setBirthday(cursor.getString(cursor.getColumnIndex("birthday")));
            person.setPaper_type(cursor.getInt(cursor.getColumnIndex("paper_type")));
            person.setPaper_num(cursor.getString(cursor.getColumnIndex("paper_num")));
            person.setEmployer(cursor.getString(cursor.getColumnIndex("employer")));
            person.setAddress(cursor.getString(cursor.getColumnIndex("address")));
            person.setRole(cursor.getInt(cursor.getColumnIndex("role")));
            person.setRelation_member_id(cursor.getInt(cursor.getColumnIndex("relation_member_id")));
            person.setType_name(cursor.getString(cursor.getColumnIndex("type_name")));
            person.setLicence_type(cursor.getString(cursor.getColumnIndex("licence_type")));
            person.setLicence_num(cursor.getString(cursor.getColumnIndex("licence_num")));
            person.setUser_id(cursor.getInt(cursor.getColumnIndex("user_id")));
            person.setProhibition(cursor.getInt(cursor.getColumnIndex("prohibition")));
            person.setHxId(cursor.getString(cursor.getColumnIndex("hxId")));
            personsList.add(person);
        }
        cursor.close();
        db.close();
        return personsList;
    }

    public Person queryPersonByHXid(String caseId,String hxId) {
        Person person = null;
        Cursor cursor = db.query("persons", null, "caseId=? and hxId=?", new String[]{caseId,hxId}, null, null, null);
        while (cursor.moveToNext()) {
            person = new Person();
            person.setCase_member_id(cursor.getInt(cursor.getColumnIndex("case_member_id")));
            person.setTruename(cursor.getString(cursor.getColumnIndex("truename")));
            person.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
            person.setMobile(cursor.getString(cursor.getColumnIndex("mobile")));
            person.setOccupation(cursor.getString(cursor.getColumnIndex("occupation")));
            person.setBirthday(cursor.getString(cursor.getColumnIndex("birthday")));
            person.setPaper_type(cursor.getInt(cursor.getColumnIndex("paper_type")));
            person.setPaper_num(cursor.getString(cursor.getColumnIndex("paper_num")));
            person.setEmployer(cursor.getString(cursor.getColumnIndex("employer")));
            person.setAddress(cursor.getString(cursor.getColumnIndex("address")));
            person.setRole(cursor.getInt(cursor.getColumnIndex("role")));
            person.setRelation_member_id(cursor.getInt(cursor.getColumnIndex("relation_member_id")));
            person.setType_name(cursor.getString(cursor.getColumnIndex("type_name")));
            person.setLicence_type(cursor.getString(cursor.getColumnIndex("licence_type")));
            person.setLicence_num(cursor.getString(cursor.getColumnIndex("licence_num")));
            person.setUser_id(cursor.getInt(cursor.getColumnIndex("user_id")));
            person.setProhibition(cursor.getInt(cursor.getColumnIndex("prohibition")));
            person.setHxId(cursor.getString(cursor.getColumnIndex("hxId")));
        }
        cursor.close();
        db.close();
        return person;
    }

    public ArrayList queryPersonsByCaseId(String caseId) {
        ArrayList list = new ArrayList<>();
        Cursor cursor = db.query(true, "persons", null, "caseId=?", new String[]{caseId}, null, null, null, null);
        Person person;
        while (cursor.moveToNext()) {
            person = new Person();
            person.setCase_member_id(cursor.getInt(cursor.getColumnIndex("case_member_id")));
            person.setTruename(cursor.getString(cursor.getColumnIndex("truename")));
            person.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
            person.setMobile(cursor.getString(cursor.getColumnIndex("mobile")));
            person.setOccupation(cursor.getString(cursor.getColumnIndex("occupation")));
            person.setBirthday(cursor.getString(cursor.getColumnIndex("birthday")));
            person.setPaper_type(cursor.getInt(cursor.getColumnIndex("paper_type")));
            person.setPaper_num(cursor.getString(cursor.getColumnIndex("paper_num")));
            person.setEmployer(cursor.getString(cursor.getColumnIndex("employer")));
            person.setAddress(cursor.getString(cursor.getColumnIndex("address")));
            person.setRole(cursor.getInt(cursor.getColumnIndex("role")));
            person.setRelation_member_id(cursor.getInt(cursor.getColumnIndex("relation_member_id")));
            person.setType_name(cursor.getString(cursor.getColumnIndex("type_name")));
            person.setLicence_type(cursor.getString(cursor.getColumnIndex("licence_type")));
            person.setLicence_num(cursor.getString(cursor.getColumnIndex("licence_num")));
            person.setUser_id(cursor.getInt(cursor.getColumnIndex("user_id")));
            person.setProhibition(cursor.getInt(cursor.getColumnIndex("prohibition")));
            person.setHxId(cursor.getString(cursor.getColumnIndex("hxId")));
            if (!list.contains(person))
                list.add(person);
        }
        cursor.close();
        db.close();
        return list;
    }

    public void deleteByCaseId(String caseId) {
        db.delete("persons", "caseId=?", new String[]{caseId});
    }

    public String getPersonRole(String caseId, String case_member_id) {
        String role = null;
        String sql = "select role from persons where caseId='" + caseId + "' and case_member_id='" + case_member_id + "'";
        L.e("sql->" + sql);
        Cursor cursor = db.query("persons", new String[]{"role"}, "caseId=? and case_member_id=?", new String[]{caseId, case_member_id}, null, null, null);
        while (cursor.moveToNext()) {
            role = cursor.getString(0);
        }
        cursor.close();
        db.close();
        return role;
    }

    public void updatePersonPermision(String caseId, String userId, int permision) {
        ContentValues values = new ContentValues();
        values.put("prohibition", permision);
        int r = db.update("persons", values, "caseId=? and user_id=?", new String[]{caseId, userId});
        L.e("PersonDao", "更新结果->" + r);
        db.close();
    }

    public void release() {
        if (db != null) {
            db.close();
        }
    }
}


三:person的bean类

package com.zjtp.dyhtj.anjian.modle.beans;

/**
 * 人员实体类(注重关注于应用的业务逻辑)
 * Created by Administrator on 2017/7/17.
 */

public class Person {

    public void Person() {
    }


    public static final int ROLE_TJY = 0;
    public static final int ROLE_YG = 1;
    public static final int ROLE_YGDLR = 2;
    public static final int ROLE_BG = 3;
    public static final int ROLE_BGDLR = 4;
    public static final int ROLE_BGF = 6;
    public static final int ROLE_YGF = 7;

    /**
     * case_member_id : 67
     * truename : 李丰君代理
     * sex : 1
     * mobile : 13311167851
     * occupation :
     * birthday : 1992-11-11
     * paper_type : 1
     * paper_num : 371322199211110016
     * employer : 律金汇
     * address : 测试
     * role : 1
     * relation_member_id : 66
     * type_name : 自然人
     * licence_type :
     * licence_num :
     */

    public String hxId;
    public int user_id;
    public int prohibition;
    public int case_member_id;
    public String truename;
    public int sex;
    public String mobile;
    public String occupation;
    public String birthday;
    public int paper_type;
    public String paper_num;
    public String employer;
    public String address;
    public int role;
    public int relation_member_id;
    public String type_name;
    public String licence_type;
    public String licence_num;

    public String getHxId() {
        return hxId;
    }

    public void setHxId(String hxId) {
        this.hxId = hxId;
    }

    public int getProhibition() {
        return prohibition;
    }

    public void setProhibition(int prohibition) {
        this.prohibition = prohibition;
    }

    public int getUser_id() {
        return user_id;
    }

    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }

    public int getCase_member_id() {
        return case_member_id;
    }

    public void setCase_member_id(int case_member_id) {
        this.case_member_id = case_member_id;
    }

    public String getTruename() {
        return truename;
    }

    public void setTruename(String truename) {
        this.truename = truename;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getOccupation() {
        return occupation;
    }

    public void setOccupation(String occupation) {
        this.occupation = occupation;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public int getPaper_type() {
        return paper_type;
    }

    public void setPaper_type(int paper_type) {
        this.paper_type = paper_type;
    }

    public String getPaper_num() {
        return paper_num;
    }

    public void setPaper_num(String paper_num) {
        this.paper_num = paper_num;
    }

    public String getEmployer() {
        return employer;
    }

    public void setEmployer(String employer) {
        this.employer = employer;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getRole() {
        return role;
    }

    public void setRole(int role) {
        this.role = role;
    }

    public int getRelation_member_id() {
        return relation_member_id;
    }

    public void setRelation_member_id(int relation_member_id) {
        this.relation_member_id = relation_member_id;
    }

    public String getType_name() {
        return type_name;
    }

    public void setType_name(String type_name) {
        this.type_name = type_name;
    }

    public String getLicence_type() {
        return licence_type;
    }

    public void setLicence_type(String licence_type) {
        this.licence_type = licence_type;
    }

    public String getLicence_num() {
        return licence_num;
    }

    public void setLicence_num(String licence_num) {
        this.licence_num = licence_num;
    }

    @Override
    public String toString() {
        return "Person{" +
                "hxId='" + hxId + '\'' +
                ", user_id=" + user_id +
                ", prohibition=" + prohibition +
                ", case_member_id=" + case_member_id +
                ", truename='" + truename + '\'' +
                ", sex=" + sex +
                ", mobile='" + mobile + '\'' +
                ", occupation='" + occupation + '\'' +
                ", birthday='" + birthday + '\'' +
                ", paper_type=" + paper_type +
                ", paper_num='" + paper_num + '\'' +
                ", employer='" + employer + '\'' +
                ", address='" + address + '\'' +
                ", role=" + role +
                ", relation_member_id=" + relation_member_id +
                ", type_name='" + type_name + '\'' +
                ", licence_type='" + licence_type + '\'' +
                ", licence_num='" + licence_num + '\'' +
                '}';
    }
}

四:插入数据库:

 //把原告代理人信息存入数据库
                        Person person = new Person();
                        person.setCase_member_id(accuserAgentBean.getCase_member_id());
                        person.setTruename(accuserAgentBean.getTruename());
                        person.setSex(accuserAgentBean.getSex());
                        person.setMobile(accuserAgentBean.getMobile());
                        person.setOccupation(accuserAgentBean.getOccupation());
                        person.setBirthday(accuserAgentBean.getBirthday().toString());
                        person.setPaper_type(accuserAgentBean.getPaper_type());
                        person.setPaper_num(accuserAgentBean.getPaper_num());
                        person.setEmployer(accuserAgentBean.getEmployer());
                        person.setAddress(accuserAgentBean.getAddress());
                        person.setRole(accuserAgentBean.getRole());
                        person.setRelation_member_id(accuserAgentBean.getRelation_member_id());
                        person.setType_name(accuserAgentBean.getTruename());
                        person.setLicence_type(accuserAgentBean.getLicence_type());
                        person.setLicence_num(accuserAgentBean.getLicence_num());
                        person.setUser_id(accuserAgentBean.getUser_id());
                        person.setHxId(accuserAgentBean.getHx_account());
                        PersonDao personDao = new PersonDao(getActivity());
                        person.setProhibition(0);
                        personDao.updateOrInsert(person, case_id + "");

五:查询数据库:

  //查询表里是否有数据
  final ArrayList persons = personDao.queryPersonsByCaseId(case_id + "");
  if (persons.size() != 0) {
    //有数据
   }


你可能感兴趣的:(Android_SqLite数据库的创建与使用)