From 660a8782073e792cb6413843e28df0b5d8567edd Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 8 Mar 2023 11:21:30 +0800 Subject: [PATCH] =?UTF-8?q?[dev=5Fopt=5F2.15.0]=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9B=B8=E5=85=B3=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../breakpoint/db/impl/ThreadDaoImpl.java | 149 ++++++++++++++---- 1 file changed, 118 insertions(+), 31 deletions(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/db/impl/ThreadDaoImpl.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/db/impl/ThreadDaoImpl.java index 0aca3fe354..c537b0ff60 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/db/impl/ThreadDaoImpl.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/db/impl/ThreadDaoImpl.java @@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.breakpoint.db.DBHelper; import com.mogo.eagle.core.utilcode.breakpoint.db.dao.ThreadDao; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class ThreadDaoImpl implements ThreadDao { @@ -21,53 +22,139 @@ public class ThreadDaoImpl implements ThreadDao { @Override public synchronized void insertThread(ThreadBean threadBean) { - SQLiteDatabase db = dbHelper.getWritableDatabase(); - db.execSQL("insert into thread_info ( thread_id, url, start, ends, finished) values (?,?,?,?,?)" - ,new Object[]{threadBean.getId(),threadBean.getUrl(),threadBean.getStart(),threadBean.getEnd(),threadBean.getFinished()}); - db.close(); + SQLiteDatabase db = null; + try { + db = dbHelper.getWritableDatabase(); + db.beginTransaction(); + db.execSQL("insert into thread_info ( thread_id, url, start, ends, finished) values (?,?,?,?,?)" + ,new Object[]{threadBean.getId(),threadBean.getUrl(),threadBean.getStart(),threadBean.getEnd(),threadBean.getFinished()}); + db.endTransaction(); + db.setTransactionSuccessful(); + } catch (Throwable t) { + t.printStackTrace(); + } finally { + try { + if (db != null) { + db.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + } } @Override public synchronized void updateThread(String url, int thread_id, int finished) { - SQLiteDatabase db = dbHelper.getWritableDatabase(); - db.execSQL("update thread_info set finished = ? where url = ? and thread_id = ?" - ,new Object[]{finished,url,thread_id}); - db.close(); + SQLiteDatabase db = null; + try { + db = dbHelper.getWritableDatabase(); + db.beginTransaction(); + db.execSQL("update thread_info set finished = ? where url = ? and thread_id = ?" + ,new Object[]{finished,url,thread_id}); + db.endTransaction(); + db.setTransactionSuccessful(); + } catch (Throwable t) { + t.printStackTrace(); + } finally { + try { + if (db != null) { + db.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + } } @Override public void deleteThread(String url) { - SQLiteDatabase db = dbHelper.getWritableDatabase(); - db.execSQL("delete from thread_info where url = ?",new Object[]{url}); - db.close(); + SQLiteDatabase db = null; + try { + db = dbHelper.getWritableDatabase(); + db.beginTransaction(); + db.execSQL("delete from thread_info where url = ?",new Object[]{url}); + db.endTransaction(); + db.setTransactionSuccessful(); + } catch (Throwable t) { + t.printStackTrace(); + } finally { + try { + if (db != null) { + db.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + + } } @Override public List getThreads(String url) { - SQLiteDatabase db = dbHelper.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from thread_info where url = ?",new String[]{url}); - List threadBeanList = new ArrayList<>(); - while (cursor.moveToNext()){ - ThreadBean bean = new ThreadBean(); - bean.setId(cursor.getInt(cursor.getColumnIndex("thread_id"))); - bean.setUrl(cursor.getString(cursor.getColumnIndex("url"))); - bean.setStart(cursor.getInt(cursor.getColumnIndex("start"))); - bean.setEnd(cursor.getInt(cursor.getColumnIndex("ends"))); - bean.setFinished(cursor.getInt(cursor.getColumnIndex("finished"))); - threadBeanList.add(bean); + SQLiteDatabase db = null; + Cursor cursor = null; + try { + db = dbHelper.getReadableDatabase(); + cursor = db.rawQuery("select * from thread_info where url = ?",new String[]{url}); + List threadBeanList = new ArrayList<>(); + while (cursor.moveToNext()){ + ThreadBean bean = new ThreadBean(); + bean.setId(cursor.getInt(cursor.getColumnIndex("thread_id"))); + bean.setUrl(cursor.getString(cursor.getColumnIndex("url"))); + bean.setStart(cursor.getInt(cursor.getColumnIndex("start"))); + bean.setEnd(cursor.getInt(cursor.getColumnIndex("ends"))); + bean.setFinished(cursor.getInt(cursor.getColumnIndex("finished"))); + threadBeanList.add(bean); + } + return threadBeanList; + } catch (Throwable t) { + t.printStackTrace(); + } finally { + try { + if (cursor != null) { + cursor.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + + try { + if (db != null) { + db.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } } - cursor.close(); - db.close(); - return threadBeanList; + return Collections.emptyList(); } @Override public boolean isExists(String url, int thread_id) { - SQLiteDatabase db = dbHelper.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from thread_info where url = ? and thread_id = ?", new String[]{url,thread_id+""}); - boolean exists = cursor.moveToNext(); - cursor.close(); - db.close(); - return exists; + SQLiteDatabase db = null; + Cursor cursor = null; + try { + db = dbHelper.getReadableDatabase(); + cursor = db.rawQuery("select * from thread_info where url = ? and thread_id = ?", new String[]{url,thread_id+""}); + return cursor.moveToNext(); + } catch (Throwable t) { + t.printStackTrace(); + } finally { + try { + if (cursor != null) { + cursor.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + try { + if (db != null) { + db.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + } + return false; } }