/** * 长大长新-长江大学校园安卓应用 * * Copyright (C) 2014-2016 Rex Lee <duguying2008@gmail.com> * * This program is free and opensource software; * you can redistribute it and/or modify * it under the terms of the MIT License */ package com.rex.yangtzeu.sqlite; import com.rex.yangtzeu.config.Path; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class Sql { private SQLiteDatabase db; public Sql() { this.db = SQLiteDatabase.openOrCreateDatabase(Path.check_dir() + "/yangtzeu.db", null); db_init(); } /** * 获取数据库 * * @return */ public SQLiteDatabase getSQLiteDatabase() { return this.db; } /** * 执行查询sql语句 * * @param sql * @param selectionArgs * @return */ public Cursor query(String sql, String[] selectionArgs) { synchronized (this) { return db.rawQuery(sql, selectionArgs); } } /** * 执行非查询sql语句 * * @param sql */ public void exec(String sql) { synchronized (this) { db.execSQL(sql); } } /** * 打开并创建数据表 * */ private void db_init() { // 创建kv表 create_table( "kv", "CREATE TABLE [kv] ([key] VARCHAR(20) UNIQUE NOT NULL PRIMARY KEY,[value] TEXT NOT NULL)"); // 创建jwc_notice_list表 create_table( "jwc_notice_list", "CREATE TABLE [jwc_notice_list] ([url] NVARCHAR(512) UNIQUE NOT NULL PRIMARY KEY,[time] DATE NOT NULL, [title] NVARCHAR(512) NOT NULL )"); // 创建jwc_news_list表 create_table( "jwc_news_list", "CREATE TABLE [jwc_news_list] ([url] NVARCHAR(512) UNIQUE NOT NULL PRIMARY KEY, [time] DATE NOT NULL,[title] NVARCHAR(512) NOT NULL)"); // 创建departments表 create_table( "departments", "CREATE TABLE [departments] ([dep_id] INTEGER UNIQUE NOT NULL,[dep_name] VARCHAR(30) NOT NULL,[dep_rate] INTEGER DEFAULT '0' NOT NULL,[dep_note] VARCHAR(30) NULL)"); // 创建classes表 create_table( "classes", "CREATE TABLE [classes] ([cls_id] INTEGER NOT NULL PRIMARY KEY,[cls_name] VARCHAR(30) NOT NULL,[cls_dep] INTEGER NOT NULL,[cls_rate] INTEGER DEFAULT '0' NOT NULL,[cls_note] VARCHAR(30) NULL)"); } /** * 创建表 * * @param table_name * @param create_table_sql */ private void create_table(String table_name, String create_table_sql) { String check_exist_table = "SELECT count(*) as c FROM sqlite_master WHERE type='table' AND name='" + table_name + "'"; Cursor cursor = query(check_exist_table, null); int count = 0; if (cursor.moveToFirst()) { count = cursor.getInt(cursor.getColumnIndex("c")); } if (count == 0) { // 创建表 // try { exec(create_table_sql); // } catch (Exception e) { // Toast.makeText(Yangtzeu.getInstance(), e.getMessage(), // Toast.LENGTH_LONG).show(); // } } if (cursor.equals(null)) { cursor.close(); } } }