/* * Copyright (C) 2018 Baidu, Inc. All Rights Reserved. */ package com.example.datalibrary.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * 数据库创建工具 */ public class DBHelper extends SQLiteOpenHelper { private static final String CREATE_TABLE_START_SQL = "CREATE TABLE IF NOT EXISTS "; private static final String CREATE_TABLE_PRIMIRY_SQL = " integer primary key autoincrement,"; /** * 数据库名称 */ private static final String DB_NAME = "face.db"; /** * 数据库版本 */ private static final int VERSION = 1; /** * 人脸特征表 */ // public static final String TABLE_FEATURE = "feature"; /** * 用户组表 */ public static final String TABLE_USER_GROUP = "user_group"; /** * 用户表 */ public static final String TABLE_USER = "user"; /** * 识别记录表 */ public static final String TABLE_RECORDS = "records"; public DBHelper(Context context) { super(context, DB_NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { createTables(db); } @Override public synchronized void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (newVersion > oldVersion) { // db.execSQL("DROP TABLE IF EXISTS " + TABLE_FEATURE); db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER_GROUP); db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER); db.execSQL("DROP TABLE IF EXISTS " + TABLE_RECORDS); onCreate(db); } } public synchronized void createTables(SQLiteDatabase db) { if (db == null || db.isReadOnly()) { db = getWritableDatabase(); } // 创建人脸特征表的SQL语句 // StringBuffer featureSql = new StringBuffer(); // featureSql.append(CREATE_TABLE_START_SQL).append(TABLE_FEATURE).append(" ( "); // featureSql.append(" _id").append(CREATE_TABLE_PRIMIRY_SQL); // featureSql.append(" face_token").append(" varchar(128) default \"\" ,"); // featureSql.append(" group_id").append(" varchar(32) default \"\" ,"); // featureSql.append(" user_id").append(" varchar(32) default \"\" ,"); // featureSql.append(" feature").append(" blob ,"); // featureSql.append(" image_name").append(" varchar(64) default \"\" ,"); // featureSql.append(" ctime").append(" long ,"); // featureSql.append(" update_time").append(" long )"); // 创建用户组表的SQL语句 StringBuffer groupSql = new StringBuffer(); groupSql.append(CREATE_TABLE_START_SQL).append(TABLE_USER_GROUP).append(" ( "); groupSql.append(" _id").append(CREATE_TABLE_PRIMIRY_SQL); groupSql.append(" group_id").append(" varchar(32) default \"\" ,"); groupSql.append(" desc").append(" varchar(32) default \"\" ,"); groupSql.append(" ctime").append(" long ,"); groupSql.append(" update_time").append(" long )"); // 创建用户表的SQL语句 StringBuffer userSql = new StringBuffer(); userSql.append(CREATE_TABLE_START_SQL).append(TABLE_USER).append(" ( "); userSql.append(" _id").append(CREATE_TABLE_PRIMIRY_SQL); userSql.append(" user_id").append(" varchar(32) default \"\" ,"); userSql.append(" user_name").append(" varchar(32) default \"\" ,"); userSql.append(" user_info").append(" varchar(32) default \"\" ,"); userSql.append(" group_id").append(" varchar(32) default \"\" ,"); userSql.append(" face_token").append(" varchar(128) default \"\" ,"); userSql.append(" feature").append(" blob ,"); userSql.append(" image_name").append(" varchar(64) default \"\" ,"); userSql.append(" ctime").append(" long ,"); userSql.append(" update_time").append(" long )"); // 创建识别记录的SQL语句 StringBuffer recordSql = new StringBuffer(); recordSql.append(CREATE_TABLE_START_SQL).append(TABLE_RECORDS).append(" ( "); recordSql.append(" _id").append(CREATE_TABLE_PRIMIRY_SQL); recordSql.append(" deviceid").append(" varchar(32) default \"\" ,"); recordSql.append(" user_id").append(" varchar(32) default \"\" ,"); recordSql.append(" user_name").append(" varchar(32) default \"\" ,"); recordSql.append(" group_id").append(" varchar(32) default \"\" ,"); recordSql.append(" face_token").append(" varchar(128) default \"\" ,"); recordSql.append(" time").append(" datetime ,"); recordSql.append(" records").append(" varchar(32) default \"\" ,"); recordSql.append(" longId").append(" varchar(32) default \"\" ,"); recordSql.append(" score").append(" varchar(32) default \"\" )"); try { db.execSQL(groupSql.toString()); db.execSQL(userSql.toString()); db.execSQL(recordSql.toString()); // db.execSQL(featureSql.toString()); } catch (Exception e) { e.printStackTrace(); } } }