This commit is contained in:
Yutousama 2024-11-03 20:49:06 +08:00
parent 3e694a43cc
commit 96acb5826d
3 changed files with 22 additions and 10 deletions

View File

@ -190,6 +190,7 @@ public class WebSocketManager {
Log.i("WebSocketClientTh.onClose"); Log.i("WebSocketClientTh.onClose");
Log.i("i = " + i + ", s = " + s + ", b = " + b); Log.i("i = " + i + ", s = " + s + ", b = " + b);
WebSocketManager.getInstance().roomMap.remove(roomConfig); WebSocketManager.getInstance().roomMap.remove(roomConfig);
liveDatabase.close();
heartbeatTask.cancel(); heartbeatTask.cancel();
} }
@ -198,6 +199,7 @@ public class WebSocketManager {
Log.i("WebSocketClientTh.onError"); Log.i("WebSocketClientTh.onError");
Log.e(e); Log.e(e);
WebSocketManager.getInstance().roomMap.remove(roomConfig); WebSocketManager.getInstance().roomMap.remove(roomConfig);
liveDatabase.close();
heartbeatTask.cancel(); heartbeatTask.cancel();
} }

View File

@ -51,7 +51,7 @@ public class BiliBiliLiveDatabasesManager extends SQLiteManager {
*/ */
public void addDanmu(DanmuData data){ public void addDanmu(DanmuData data){
try{ try{
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
String sql=String.format("insert into `danmu` (`model`,`fontSize`,`fontColor`,`time`,`uCode`,`danmu`,`uid`,`uname`) " + String sql=String.format("insert into `danmu` (`model`,`fontSize`,`fontColor`,`time`,`uCode`,`danmu`,`uid`,`uname`) " +
"values (%d,%d,%d,%d,'%s','%s',%d,'%s')" "values (%d,%d,%d,%d,'%s','%s',%d,'%s')"
,data.getModel() ,data.getModel()
@ -80,7 +80,7 @@ public class BiliBiliLiveDatabasesManager extends SQLiteManager {
List<DanmuData> list=new ArrayList<>(); List<DanmuData> list=new ArrayList<>();
try { try {
String sql=String.format("select * from `danmu` where time >%d and time <%d",startTime.getTime(),endTime.getTime()); String sql=String.format("select * from `danmu` where time >%d and time <%d",startTime.getTime(),endTime.getTime());
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
ResultSet set = statement.executeQuery(sql); ResultSet set = statement.executeQuery(sql);
while (set.next()){ while (set.next()){
DanmuData data=new DanmuData(); DanmuData data=new DanmuData();

View File

@ -128,7 +128,7 @@ public abstract class SQLiteManager {
value.append(")"); value.append(")");
sb.append(") VALUES "); sb.append(") VALUES ");
sb.append(value); sb.append(value);
PreparedStatement statement = conn.prepareStatement(sb.toString()); PreparedStatement statement = getConnection().prepareStatement(sb.toString());
int i = 1; int i = 1;
for (String key : keySet) { for (String key : keySet) {
if ("id".equals(key)) { if ("id".equals(key)) {
@ -167,7 +167,7 @@ public abstract class SQLiteManager {
}else if(id.endsWith("000")){ }else if(id.endsWith("000")){
id=id.substring(0,id.length()-4); id=id.substring(0,id.length()-4);
} }
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("UPDATE `").append(t.getTableName()).append("` "); sb.append("UPDATE `").append(t.getTableName()).append("` ");
sb.append("SET "); sb.append("SET ");
@ -202,7 +202,7 @@ public abstract class SQLiteManager {
protected JSONArray getJSONArray(String table, String where) { protected JSONArray getJSONArray(String table, String where) {
JSONArray array = new JSONArray(); JSONArray array = new JSONArray();
try { try {
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
String sql = "SELECT * FROM `" + table + "`"; String sql = "SELECT * FROM `" + table + "`";
if (where != null) { if (where != null) {
sql += " WHERE " + where; sql += " WHERE " + where;
@ -246,7 +246,7 @@ public abstract class SQLiteManager {
} }
protected int getCount(String table) { protected int getCount(String table) {
try (PreparedStatement preparedStatement = conn.prepareStatement("SELECT count(*) FROM " + table)) { try (PreparedStatement preparedStatement = getConnection().prepareStatement("SELECT count(*) FROM " + table)) {
try (ResultSet resultSet = preparedStatement.executeQuery()) { try (ResultSet resultSet = preparedStatement.executeQuery()) {
if (resultSet.next()) { if (resultSet.next()) {
return resultSet.getInt(1); return resultSet.getInt(1);
@ -264,7 +264,7 @@ public abstract class SQLiteManager {
protected <T extends AbsDatabasesBean> List<T> get(String table, String where, Class<T> tClass) { protected <T extends AbsDatabasesBean> List<T> get(String table, String where, Class<T> tClass) {
List<T> list = new ArrayList<>(); List<T> list = new ArrayList<>();
try { try {
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
String sql = "SELECT * FROM `" + table + "`"; String sql = "SELECT * FROM `" + table + "`";
if (where != null) { if (where != null) {
sql += " WHERE " + where; sql += " WHERE " + where;
@ -285,7 +285,7 @@ public abstract class SQLiteManager {
protected <T extends AbsDatabasesBean> boolean delete(T t) { protected <T extends AbsDatabasesBean> boolean delete(T t) {
try { try {
String id = DateUtils.format(t.getSql_time(), "yyyy-MM-dd HH:mm:ss.SSS"); String id = DateUtils.format(t.getSql_time(), "yyyy-MM-dd HH:mm:ss.SSS");
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("DELETE FROM `").append(t.getTableName()).append("` "); sb.append("DELETE FROM `").append(t.getTableName()).append("` ");
sb.append(" WHERE `sql_time` = ").append("'").append(id).append("'"); sb.append(" WHERE `sql_time` = ").append("'").append(id).append("'");
@ -306,7 +306,7 @@ public abstract class SQLiteManager {
public void clearTable(String tableName) { public void clearTable(String tableName) {
try { try {
String sql = "DROP TABLE IF EXISTS " + tableName; String sql = "DROP TABLE IF EXISTS " + tableName;
try (Statement stmt = conn.createStatement()) { try (Statement stmt = getConnection().createStatement()) {
int rowsDeleted = stmt.executeUpdate(sql); int rowsDeleted = stmt.executeUpdate(sql);
stmt.close(); stmt.close();
System.out.println("已删除 " + rowsDeleted + " 行数据从表 " + tableName); System.out.println("已删除 " + rowsDeleted + " 行数据从表 " + tableName);
@ -336,7 +336,7 @@ public abstract class SQLiteManager {
private void createSqlOfTable(BuildSqlTable table) { private void createSqlOfTable(BuildSqlTable table) {
String tableName = table.getName(); String tableName = table.getName();
try { try {
Statement statement = conn.createStatement(); Statement statement = getConnection().createStatement();
List<BuildSqlItem> items = table.getItem(); List<BuildSqlItem> items = table.getItem();
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("CREATE TABLE `") sql.append("CREATE TABLE `")
@ -392,6 +392,16 @@ public abstract class SQLiteManager {
config.enforceForeignKeys(true); config.enforceForeignKeys(true);
conn = config.createConnection(url + sql.getAbsolutePath()); conn = config.createConnection(url + sql.getAbsolutePath());
} }
protected Connection getConnection(){
try {
if(conn.isClosed()){
linkDB();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return conn;
}
protected abstract List<AbsDatabasesBean> getDataBean(); protected abstract List<AbsDatabasesBean> getDataBean();