package com.ztspeech.simutalk2.dictionary.dom; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import com.ztspeech.simutalk2.data.UserInfo; import com.ztspeech.simutalk2.dictionary.entity.Categroy; import com.ztspeech.simutalk2.dictionary.entity.Child; import com.ztspeech.simutalk2.dictionary.entity.Collecter; import com.ztspeech.simutalk2.dictionary.entity.KouyiRecord; import com.ztspeech.simutalk2.dictionary.entity.Words; import com.ztspeech.simutalk2.dictionary.util.LogInfo; import com.ztspeech.simutalk2.dictionary.util.PublicArithmetic; import com.ztspeech.simutalk2.dictionary.util.Util; public class SQLiteDom { private static SQLiteDatabase database = null; private static SQLiteDatabase database2 = null; private boolean isOpen = false; public boolean getIsOpen() { return isOpen; } public SQLiteDom() { } public void openDB1() { if (database == null) { database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, null); } } public void openDB2() { isOpen = true; if (database2 == null) { database2 = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, null); } } private String databaseFilename = Util.DATABASE_PATH + "/" + Util.DATABASE_FILENAME; private String databaseFilename2 = Util.DATABASE_PATH + "/" + Util.DATABASE_FILENAME2; public void closeDataBase() { isOpen = false; if (database != null) { database.close(); } if (database2 != null) { database2.close(); } } // �������� ���� public void insertNewWords(List<Words> list) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); Words word = null; for (int i = 0; i < list.size(); i++) { word = list.get(i); insertNewWord(word); } } // ���뵥������ public void insertNewWord(Words word) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); ContentValues cv = new ContentValues(); if (word != null) { cv.put(Util.WORDS_CHILDID, word.getChildID()); cv.put(Util.WORDS_CHINESE, word.getChinese()); cv.put(Util.WORDS_ENGLISH, word.getEnglish()); cv.put(Util.WORDS_HEAT, word.getWordsHeat()); database.insert(Util.WORDS, null, cv); } } // ��ѯȫ��������Ϣ public List getAllCategroy() { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); String sql = "select * from " + Util.CATEGROY; Cursor cursor = database.rawQuery(sql, null); List list = new ArrayList(); Categroy categroy = null; while (cursor.moveToNext()) { categroy = new Categroy(); categroy.setCategroyId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CATEGROY_ID)))); categroy.setCategroyName(cursor.getString(cursor.getColumnIndex(Util.CATEGROY_NAME))); categroy.setCategroyHeat(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CATEGROY_HEAT)))); list.add(categroy); categroy = null; } cursor.close(); // database.close(); return list; } // ͨ��categroy_id��ѯ������Ϣ public List getChildByCategroyId(Integer categroyId) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); String sql = "select * from " + Util.CHILD + " where categroy_id=" + categroyId; Cursor cursor = database.rawQuery(sql, null); List list = new ArrayList(); Child child = null; while (cursor.moveToNext()) { child = new Child(); child.setChildId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CHILD_ID)))); child.setCategroyId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CHILD_CATEGROYID)))); child.setChildName(cursor.getString(cursor.getColumnIndex(Util.CHILD_NAME))); child.setChildHeat(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CHILD_HEAT)))); list.add(child); child = null; } cursor.close(); // database.close(); return list; } // ͨ�����ʻ���Ӳ�ѯ��ؾ��� public List getSimilarResult(String chinese, String english, Integer childId, int page) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); String sql = null; Cursor cursor = null; int countInOnePage = Util.COUNTINONEPAGE; // int count = 0; // sql = "select count(*) as count from words;"; // cursor = database.rawQuery(sql,null); // if (cursor.getCount() > 0) // { // cursor.moveToFirst(); // count = cursor.getInt(cursor.getColumnIndex("count")); // } sql = "select * from " + Util.WORDS; if ((chinese == null || "".equals(chinese)) && english != null) { sql += " where " + Util.WORDS_ENGLISH + " like '%" + strFilter(english) + "%'"; } else if ((english == null || "".equals(english)) && chinese != null) { sql += " where " + Util.WORDS_CHINESE + " like '%" + strFilter(chinese) + "%'"; } if (childId == null || "".equals(childId)) { } else { if ((english == null || "".equals(english)) && (chinese == null || "".equals(chinese))) { sql += " where " + Util.WORDS_CHILDID + "=" + childId; } else { sql += " and " + Util.WORDS_CHILDID + "=" + childId; } } sql += " order by " + Util.WORDS_ID + " limit " + countInOnePage + " offset " + (page - 1) * countInOnePage; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); cursor = database.rawQuery(sql, null); List list = new ArrayList(); Words words = null; while (cursor.moveToNext()) { words = new Words(); words.setWordsId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.WORDS_ID)))); words.setChildID(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.WORDS_CHILDID)))); words.setChinese(cursor.getString(cursor.getColumnIndex(Util.WORDS_CHINESE))); words.setEnglish(cursor.getString(cursor.getColumnIndex(Util.WORDS_ENGLISH))); words.setWordsHeat(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.WORDS_HEAT)))); list.add(words); words = null; } cursor.close(); // database.close(); // Map map = new HashMap(); // map.put("list", list); // map.put("count", count); return list; } // ͨ��category_id��ѯcategroy public Categroy getCategroyById(Integer categroyId) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); String sql = "select * from " + Util.CATEGROY + " where " + Util.CATEGROY_ID + "=" + categroyId; Cursor cursor = database.rawQuery(sql, null); Categroy categroy = new Categroy(); if (cursor.getCount() > 0) { cursor.moveToFirst(); categroy.setCategroyId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CATEGROY_ID)))); categroy.setCategroyName(cursor.getString(cursor.getColumnIndex(Util.CATEGROY_NAME))); categroy.setCategroyHeat(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CATEGROY_HEAT)))); } cursor.close(); // database.close(); return categroy; } // ͨ��child_id��ѯchild public Child getChildById(Integer childId) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); String sql = "select * from " + Util.CHILD + " where " + Util.CHILD_ID + "=" + childId; Cursor cursor = database.rawQuery(sql, null); Child child = new Child(); if (cursor.getCount() > 0) { cursor.moveToFirst(); child.setChildId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CHILD_ID)))); child.setCategroyId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CHILD_CATEGROYID)))); child.setChildName(cursor.getString(cursor.getColumnIndex(Util.CHILD_NAME))); child.setChildHeat(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.CHILD_HEAT)))); } cursor.close(); // database.close(); return child; } // ͨ��categroy_id��ѯwords public List getSimilarResult(Integer categroyId, String chinese, String english, int page) { int countInOnePage = Util.COUNTINONEPAGE; // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, // null); String sql = "select " + Util.WORDS_ID + "," + Util.WORDS + "." + Util.WORDS_CHILDID + "," + Util.CHILD + "." + Util.CHILD_CATEGROYID + "," + Util.WORDS_CHINESE + "," + Util.WORDS_ENGLISH + "," + Util.WORDS_HEAT + "," + Util.CHILD_HEAT + " from " + Util.WORDS + "," + Util.CHILD + " where " + Util.WORDS + "." + Util.WORDS_CHILDID + "=" + Util.CHILD + "." + Util.CHILD_CATEGROYID; if ((chinese == null || "".equals(chinese)) && english != null) { sql += " and " + Util.WORDS_ENGLISH + " like '%" + strFilter(english) + "%'"; } else if ((english == null || "".equals(english)) && chinese != null) { sql += " and " + Util.WORDS_CHINESE + " like '%" + strFilter(chinese) + "%'"; } if (categroyId == null || "".equals(categroyId)) { } else { sql += " and " + Util.CHILD_CATEGROYID + "=" + categroyId; } sql += " order by " + Util.WORDS_ID + " limit " + countInOnePage + " offset " + (page - 1) * countInOnePage; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); Cursor cursor = database.rawQuery(sql, null); List list = new ArrayList(); Words words = null; while (cursor.moveToNext()) { words = new Words(); words.setWordsId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.WORDS_ID)))); words.setChildID(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.WORDS_CHILDID)))); words.setChinese(cursor.getString(cursor.getColumnIndex(Util.WORDS_CHINESE))); words.setEnglish(cursor.getString(cursor.getColumnIndex(Util.WORDS_ENGLISH))); words.setWordsHeat(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.WORDS_HEAT)))); list.add(words); words = null; } cursor.close(); // database.close(); return list; } // ��ѯ�û�¼���¼ public List getUserInput() { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); List list = new ArrayList<String>(); String sql = "select * from " + Util.USERINPUT + " order by " + Util.USERINPUT_ID + " desc"; Cursor cursor = database2.rawQuery(sql, null); while (cursor.moveToNext()) { list.add(cursor.getString(cursor.getColumnIndex(Util.USERINPUT_STR))); } cursor.close(); // database.close(); return list; } // ����¼���¼,ɾ���ظ�������,��ά�ֻ����������� public void saveUserInput(String str) { List list = getUserInput(); // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql; sql = "delete from " + Util.USERINPUT + " where " + Util.USERINPUT_STR + "='" + strFilter(str) + "'"; database2.execSQL(sql); ContentValues cv = new ContentValues(); cv.put(Util.USERINPUT_STR, str); int size = list.size(); if (size < Util.COUNTOFUSERINPUTHUANCUN) { database2.insert(Util.USERINPUT, null, cv); } else { int emp = (size - Util.COUNTOFUSERINPUTHUANCUN) + 1; sql = "delete from " + Util.USERINPUT + " where id in (select id from " + Util.USERINPUT + " order by " + Util.USERINPUT_ID + " limit " + emp + " offset 0)"; LogInfo.LogOut("<<<<<<<<<<<<sql>>>>>>>>>>>>", sql); database2.execSQL(sql); database2.insert(Util.USERINPUT, null, cv); } // database.close(); } // ������� public void deleteAllUserInput() { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = "delete from " + Util.USERINPUT; database2.execSQL(sql); // database.close(); } // ��ѯ�����¼ public List getSimilarResultInKouyi(String str, int page) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = null; Cursor cursor = null; int countInOnePage = Util.COUNTINONEPAGE; // int count = 0; // sql = "select count(*) as count from words;"; // cursor = database.rawQuery(sql,null); // if (cursor.getCount() > 0) // { // cursor.moveToFirst(); // count = cursor.getInt(cursor.getColumnIndex("count")); // } sql = "select * from " + Util.KOUYIRECORD; if (str == null || "".equals(str)) { } else { sql += " where " + Util.KOUYIRECORD_SAID + " like '%" + strFilter(str) + "%' or " + Util.KOUYIRECORD_TRANSLATED + " like '%" + strFilter(str) + "%'"; } // sql += " order by record_id limit " + countInOnePage + " offset " // + (page - 1) * countInOnePage; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); cursor = database2.rawQuery(sql, null); List list = new ArrayList(); KouyiRecord kouyi = null; while (cursor.moveToNext()) { kouyi = new KouyiRecord(); kouyi.setRecordId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_ID)))); kouyi.setSaid(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_SAID))); kouyi.setTranslated(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TRANSLATED))); kouyi.setDateTime(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_DATETIME))); kouyi.setId(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_IDS))); kouyi.setType(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TYPE))); kouyi.setComment(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_COMMENT))); list.add(kouyi); kouyi = null; } cursor.close(); // database.close(); // Map map = new HashMap(); // map.put("list", list); // map.put("count", count); return list; } // ͨ��˵������ҿ����¼ public List getKouyiBySaidandTranslate(String said) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = null; Cursor cursor = null; int countInOnePage = Util.COUNTINONEPAGE; // int count = 0; // sql = "select count(*) as count from words;"; // cursor = database.rawQuery(sql,null); // if (cursor.getCount() > 0) // { // cursor.moveToFirst(); // count = cursor.getInt(cursor.getColumnIndex("count")); // } // sql = // "select * from "+Util.KOUYIRECORD+" where "+Util.KOUYIRECORD_SAID+"=" // + strFilter(said) + " and "+Util.KOUYIRECORD_TRANSLATED+"=" // + strFilter(translate); sql = "select * from " + Util.KOUYIRECORD + " where " + Util.KOUYIRECORD_SAID + "='" + strFilter(said) + "'"; // sql += " order by record_id limit " + countInOnePage + " offset " // + (page - 1) * countInOnePage; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); cursor = database2.rawQuery(sql, null); List list = new ArrayList(); KouyiRecord kouyi = null; while (cursor.moveToNext()) { kouyi = new KouyiRecord(); kouyi.setRecordId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_ID)))); kouyi.setSaid(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_SAID))); kouyi.setTranslated(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TRANSLATED))); kouyi.setDateTime(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_DATETIME))); kouyi.setId(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_IDS))); kouyi.setType(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TYPE))); kouyi.setComment(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_COMMENT))); list.add(kouyi); kouyi = null; } cursor.close(); // database.close(); // Map map = new HashMap(); // map.put("list", list); // map.put("count", count); return list; } public int getIndexOfRecord(Integer recordId) { String sql = null; Cursor cursor = null; int countInOnePage = Util.COUNTINONEPAGE; sql = "select * from " + Util.KOUYIRECORD + " where " + Util.KOUYIRECORD_ID + "=" + recordId; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); cursor = database2.rawQuery(sql, null); KouyiRecord kouyi = null; if (cursor.getCount() > 0) { cursor.moveToFirst(); kouyi = new KouyiRecord(); kouyi.setRecordId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_ID)))); kouyi.setSaid(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_SAID))); kouyi.setTranslated(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TRANSLATED))); kouyi.setDateTime(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_DATETIME))); kouyi.setId(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_IDS))); kouyi.setType(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TYPE))); kouyi.setComment(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_COMMENT))); } cursor.close(); List<KouyiRecord> list = getKouyiBySaidandTranslate(kouyi.getSaid()); KouyiRecord kk = null; int index = 0; for (int i = 0; i < list.size(); i++) { kk = list.get(i); if (kk.getRecordId() == recordId) { break; } index++; } return index; } // ��ӿ����¼ public void insertRecord(KouyiRecord kouyi) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); // database.beginTransaction(); ContentValues cv = new ContentValues(); cv.put(Util.KOUYIRECORD_ID, kouyi.getRecordId()); cv.put(Util.KOUYIRECORD_SAID, kouyi.getSaid()); cv.put(Util.KOUYIRECORD_TRANSLATED, kouyi.getTranslated()); String dateTime = new PublicArithmetic().getCurrentDateTime(); cv.put(Util.KOUYIRECORD_DATETIME, dateTime); cv.put(Util.KOUYIRECORD_IDS, kouyi.getId()); cv.put(Util.KOUYIRECORD_TYPE, kouyi.getType()); cv.put(Util.KOUYIRECORD_COMMENT, kouyi.getComment()); database2.insert(Util.KOUYIRECORD, null, cv); // database.setTransactionSuccessful(); // database.endTransaction(); // database.close(); } public Integer getLastRecordId() { Integer id = null; String sql = "select " + Util.KOUYIRECORD_ID + " from " + Util.KOUYIRECORD + " order by " + Util.KOUYIRECORD_ID + " desc limit 1"; Cursor cursor = database2.rawQuery(sql, null); if (cursor.getCount() > 0) { cursor.moveToFirst(); id = cursor.getInt(cursor.getColumnIndex(Util.KOUYIRECORD_ID)); } cursor.close(); return id; } // ͨ��record_idɾ�������¼������index public int deleteRecordByIdReturnIndex(Integer recordId) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); int index = getIndexOfRecord(recordId); String sql = "delete from " + Util.KOUYIRECORD + " where " + Util.KOUYIRECORD_ID + "=" + recordId; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); return index; } // ͨ��record_idɾ�������¼ public void deleteRecordById(Integer id) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = "delete from " + Util.KOUYIRECORD + " where " + Util.KOUYIRECORD_ID + "=" + id; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); // database.delete(table, whereClause, whereArgs) // return true; // database.close(); } // ��տ����¼ public void deleteAllRecord() { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = "delete from " + Util.KOUYIRECORD; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); // database.delete(table, whereClause, whereArgs) // return true; // database.close(); } // ���¿����¼ public void updateRecord(KouyiRecord kouyi) { String sql = "update " + Util.KOUYIRECORD + " set " + Util.KOUYIRECORD_SAID + "='" + strFilter(kouyi.getSaid()) + "'," + Util.KOUYIRECORD_TRANSLATED + "='" + strFilter(kouyi.getTranslated()) + "'," + Util.KOUYIRECORD_TYPE + "='" + strFilter(kouyi.getType()) + "'," + Util.KOUYIRECORD_COMMENT + "='" + strFilter(kouyi.getComment()) + "' where " + Util.KOUYIRECORD_ID + "=" + kouyi.getRecordId(); LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); } // ���� public void commentRecord(Integer id, int flag) { String sql = "update " + Util.KOUYIRECORD + " set " + Util.KOUYIRECORD_COMMENT + "='" + flag + "' where " + Util.KOUYIRECORD_ID + "=" + id; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); } // ����ղؼ� public void deleteAllCollecter() { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = "delete from " + Util.COLLECTER; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); // database.delete(table, whereClause, whereArgs) // return true; // database.close(); } // ���������������ղ� ����ֵ-1��ʾ����ʧ��,0��ʾ�Ѵ���,�����ʾ����ɹ� public int insertCollecterFromSearch(Words words) { int result; Collecter emp = new Collecter(); emp.setText1(words.getEnglish()); emp.setText2(words.getChinese()); Collecter collecter = getCollectedWordsByWordsId(emp); if (collecter == null) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); ContentValues cv = new ContentValues(); cv.put(Util.COLLECTER_CHILDID, words.getChildID()); cv.put(Util.COLLECTER_TEXT1, words.getEnglish()); cv.put(Util.COLLECTER_TEXT2, words.getChinese()); String dateTime = new PublicArithmetic().getCurrentDateTime(); cv.put(Util.COLLECTER_DATETIME, dateTime); result = (int) database2.insert(Util.COLLECTER, null, cv); // database.close(); } else { result = 0; } return result; } // �ӿ���������ղ� ����ֵ-1��ʾ����ʧ��,0��ʾ�Ѵ���,�����ʾ����ɹ� public int insertCollecterFromKouyi(Collecter collecter) { int result; Collecter newCollecter = getCollectedWordsByWordsId(collecter); // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); if (newCollecter == null) { ContentValues cv = new ContentValues(); cv.put(Util.COLLECTER_CHILDID, collecter.getChildId()); cv.put(Util.COLLECTER_TEXT1, collecter.getText1()); cv.put(Util.COLLECTER_TEXT2, collecter.getText2()); String dateTime = new PublicArithmetic().getCurrentDateTime(); cv.put(Util.COLLECTER_DATETIME, dateTime); result = (int) database2.insert(Util.COLLECTER, null, cv); // database.close(); } else { result = 0; } return result; } // ͨ���ղز�ѯ���ղ��Ƿ���� public Collecter getCollectedWordsByWordsId(Collecter collecter) { String sql = "select * from " + Util.COLLECTER + " where " + Util.COLLECTER_TEXT1 + "='" + strFilter(collecter.getText1()) + "' and " + Util.COLLECTER_TEXT2 + "='" + strFilter(collecter.getText2()) + "'"; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); Cursor cursor = database2.rawQuery(sql, null); Collecter newCollecter = null; if (cursor.getCount() > 0) { newCollecter = new Collecter(); cursor.moveToFirst(); newCollecter.setChildId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_CHILDID)))); newCollecter.setId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_ID)))); newCollecter.setText1(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_TEXT1))); newCollecter.setText2(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_TEXT2))); newCollecter.setDateTime(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_DATETIME))); } else { newCollecter = null; } cursor.close(); // database.close(); return newCollecter; } // ��ѯ�ղ� public List getCollectedWords(String str, int page) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = null; Cursor cursor = null; int countInOnePage = Util.COUNTINONEPAGE; sql = "select * from " + Util.COLLECTER; if (str == null || "".equals(str)) { } else { sql += " where " + Util.COLLECTER_TEXT1 + " like '%" + strFilter(str) + "%' or " + Util.COLLECTER_TEXT2 + " like '%" + strFilter(str) + "%'"; } // sql += " order by record_id limit " + countInOnePage + " offset " // + (page - 1) * countInOnePage; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); cursor = database2.rawQuery(sql, null); List list = new ArrayList(); Collecter newCollecter = null; while (cursor.moveToNext()) { newCollecter = new Collecter(); newCollecter.setId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_ID)))); newCollecter.setChildId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_CHILDID)))); newCollecter.setText1(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_TEXT1))); newCollecter.setText2(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_TEXT2))); newCollecter.setDateTime(cursor.getString(cursor.getColumnIndex(Util.COLLECTER_DATETIME))); list.add(newCollecter); newCollecter = null; } cursor.close(); // database.close(); // Map map = new HashMap(); // map.put("list", list); // map.put("count", count); return list; } public void deleteCollectedWordsByWordsId(Integer id) { // database = SQLiteDatabase.openOrCreateDatabase(databaseFilename2, // null); String sql = "delete from " + Util.COLLECTER + " where " + Util.COLLECTER_ID + "=" + id; LogInfo.LogOut(">>>>>>>>>>sql<<<<<<<<<<<<", sql); database2.execSQL(sql); // database.delete(table, whereClause, whereArgs) // return true; // database.close(); } // ���˵����� public String strFilter(String str) { return str.replace("'", "''"); } public String getCurrentdbVersion() { String sql = "select version from databaseversion order by id desc limit 1 offset 0"; Cursor cursor = database2.rawQuery(sql, null); String version = null; if (cursor.getCount() > 0) { cursor.moveToFirst(); version = cursor.getString(cursor.getColumnIndex("version")); } cursor.close(); return version; } public void insertCurrentVersion(String version, char fromWhere) { ContentValues cv = new ContentValues(); cv.put("version", version); switch (fromWhere) { case '0': cv.put("fromwhere", 0);// 0Ϊ��Ӧ�ó��� break; case '1': cv.put("fromwhere", 1);// 1Ϊ������ break; default: cv.put("fromwhere", "error");// ���� break; } String dateTime = new PublicArithmetic().getCurrentDateTime(); cv.put("datetime", dateTime); database2.insert("databaseversion", null, cv); } // �������ݿ�汾���� public void updateUserDatabaseVersion() { String sql = null; try { sql = "ALTER TABLE " + Util.KOUYIRECORD + " ADD " + Util.KOUYIRECORD_TYPE + " TEXT DEFAULT 'type'"; database2.execSQL(sql); sql = "ALTER TABLE " + Util.KOUYIRECORD + " ADD " + Util.KOUYIRECORD_IDS + " TEXT DEFAULT '0000'"; database2.execSQL(sql); sql = "ALTER TABLE " + Util.KOUYIRECORD + " ADD " + Util.KOUYIRECORD_COMMENT + " TEXT DEFAULT '3'"; database2.execSQL(sql); } catch (SQLException e) { e.printStackTrace(); return; } changeOldDatabaseTypeValue(); } // ���ϰ汾���ݼ�typeֵ public void changeOldDatabaseTypeValue() { Cursor cursor = null; String sql = "select * from " + Util.KOUYIRECORD + " where " + Util.KOUYIRECORD_TYPE + "='type'"; LogInfo.LogOut(">>>>>>>sql<<<<<<<<<", sql); cursor = database2.rawQuery(sql, null); List<KouyiRecord> list = new ArrayList(); KouyiRecord kouyi = null; while (cursor.moveToNext()) { kouyi = new KouyiRecord(); kouyi.setRecordId(Integer.valueOf(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_ID)))); kouyi.setSaid(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_SAID))); kouyi.setTranslated(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TRANSLATED))); kouyi.setDateTime(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_DATETIME))); kouyi.setId(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_IDS))); kouyi.setType(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_TYPE))); kouyi.setComment(cursor.getString(cursor.getColumnIndex(Util.KOUYIRECORD_COMMENT))); list.add(kouyi); kouyi = null; } cursor.close(); for (int i = 0; i < list.size(); i++) { kouyi = list.get(i); int result = new PublicArithmetic().isWhat(kouyi.getSaid()); switch (result) { case 0: case 3: kouyi.setType(UserInfo.S2T_CH2EN); break; case 1: case 2: kouyi.setType(UserInfo.S2T_EN2CH); break; } updateRecord(kouyi); } } }