package
com.db.imgfornote;
import
android.content.ContentValues;
import
android.content.Context;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import
android.database.sqlite.SQLiteDatabase.CursorFactory;
import
android.database.sqlite.SQLiteOpenHelper;
import
android.util.Log;
public
class
DBHelper
extends
SQLiteOpenHelper
{
final
private
static
String mDbName=
"imgfornote"
;
final
private
static
int
mDbVersion=
1
;
private
static
DBHelper mInstance=
null
;
private
final
static
String mTUserPhoto=
"UserPhoto"
;
final
private
static
String mCreateSqlForNoteClass=
"create
table if not exists NoteClass(classId integer primary key asc autoincrement,className NVARCHAR(100),rowTime timestamp default (datetime('now', 'localtime')))"
;
final
private
static
String mCreateSqlForUserPhoto=
"create
table if not exists UserPhoto(photoId integer primary key asc autoincrement,photoName VARCHAR(200),userPt VARCHAR(200),title VARCHAR(255),classId integer,content NVARCHAR(250),tag NVARCHAR(200),remark text,status integer default 0,rowTime timestamp default
(datetime('now', 'localtime')))"
;
final
private
static
String[] mInsertSqlForNoteClass={
"insert
into NoteClass(className) values('默认分类[私有]');"
,
"insert
into NoteClass(className) values('读书笔记[私有]');"
,
"insert
into NoteClass(className) values('电子资料[公开]');"
};
private
DBHelper(Context
context, CursorFactory factory) {
super
(context,
mDbName, factory, mDbVersion);
}
public
static
DBHelper GetInstance(Context context, SQLiteDatabase.CursorFactory factory)
{
if
(mInstance==
null
){
mInstance
=
new
DBHelper(context,factory);
}
return
mInstance;
}
@Override
public
void
onCreate(SQLiteDatabase db) {
db.execSQL(mCreateSqlForNoteClass);
db.execSQL(mCreateSqlForUserPhoto);
for
(
int
i=
0
;i<mInsertSqlForNoteClass.length;i++)
db.execSQL(mInsertSqlForNoteClass[i]);
}
@Override
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion)
{
}
private
Cursor
ExecSQLForCursor(String sql, String[] selectionArgs){
SQLiteDatabase
db =getWritableDatabase();
Log.i(
"ExecSQLForCursor"
,sql);
return
db.rawQuery(sql,
selectionArgs);
}
private
void
ExecSQL(String sql){
try
{
SQLiteDatabase
db =getWritableDatabase();
ExecSQL(sql,db);
}
catch
(Exception
e){
Log.e(
"ExecSQL
Exception"
,e.getMessage());
e.printStackTrace();
}
}
private
void
ExecSQL(String sql,SQLiteDatabase db ){
try
{
db.execSQL(sql);
Log.i(
"ExecSQL"
,sql);
}
catch
(Exception
e){
Log.e(
"ExecSQL
Exception"
,e.getMessage());
e.printStackTrace();
}
}
public
long
InsertUserPhoto(String photoName,String title){
SQLiteDatabase
db =getWritableDatabase();
ContentValues
cv =
new
ContentValues();
cv.put(
"photoName"
,
photoName);
cv.put(
"title"
,
title);
return
db.insert(mTUserPhoto,
null
,
cv);
}
public
Cursor
SearchPhoto(
int
row,String
sort){
Cursor
cur =
null
;
try
{
String
ord = (sort==
null
||
sort.toLowerCase().startsWith(
"a"
))?
"asc"
:
"desc"
;
String
sql =
"select
* from UserPhoto order by photoId "
+ord;
String[]
args = {String.valueOf(row)};
if
(row>
0
){
sql
+=
"
limit ?"
;
}
else
{
args=
null
;
}
cur
= ExecSQLForCursor(sql,args);
}
catch
(Exception
e) {
cur
=
null
;
Log.e(
"SearchPhoto
Exception"
,e.getMessage());
e.printStackTrace();
}
return
cur;
}
public
int
UpdateUserPhoto(
int
photoId,
int
classId,String
title,String content, String tag){
SQLiteDatabase
db =getWritableDatabase();
ContentValues
cv =
new
ContentValues();
cv.put(
"classId"
,
classId);
cv.put(
"title"
,
title);
cv.put(
"content"
,
content);
cv.put(
"tag"
,
tag);
String[]
args = {String.valueOf(photoId)};
return
db.update(mTUserPhoto,
cv,
"photoId=?"
,args);
}
public
int
DeleteUserPhoto(
int
photoId){
SQLiteDatabase
db =getWritableDatabase();
String[]
args = {String.valueOf(photoId)};
return
db.delete(mTUserPhoto,
"photoId=?"
,
args);
}
}