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

View File

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

View File

@ -128,7 +128,7 @@ public abstract class SQLiteManager {
value.append(")");
sb.append(") VALUES ");
sb.append(value);
PreparedStatement statement = conn.prepareStatement(sb.toString());
PreparedStatement statement = getConnection().prepareStatement(sb.toString());
int i = 1;
for (String key : keySet) {
if ("id".equals(key)) {
@ -167,7 +167,7 @@ public abstract class SQLiteManager {
}else if(id.endsWith("000")){
id=id.substring(0,id.length()-4);
}
Statement statement = conn.createStatement();
Statement statement = getConnection().createStatement();
StringBuilder sb = new StringBuilder();
sb.append("UPDATE `").append(t.getTableName()).append("` ");
sb.append("SET ");
@ -202,7 +202,7 @@ public abstract class SQLiteManager {
protected JSONArray getJSONArray(String table, String where) {
JSONArray array = new JSONArray();
try {
Statement statement = conn.createStatement();
Statement statement = getConnection().createStatement();
String sql = "SELECT * FROM `" + table + "`";
if (where != null) {
sql += " WHERE " + where;
@ -246,7 +246,7 @@ public abstract class SQLiteManager {
}
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()) {
if (resultSet.next()) {
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) {
List<T> list = new ArrayList<>();
try {
Statement statement = conn.createStatement();
Statement statement = getConnection().createStatement();
String sql = "SELECT * FROM `" + table + "`";
if (where != null) {
sql += " WHERE " + where;
@ -285,7 +285,7 @@ public abstract class SQLiteManager {
protected <T extends AbsDatabasesBean> boolean delete(T t) {
try {
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();
sb.append("DELETE FROM `").append(t.getTableName()).append("` ");
sb.append(" WHERE `sql_time` = ").append("'").append(id).append("'");
@ -306,7 +306,7 @@ public abstract class SQLiteManager {
public void clearTable(String tableName) {
try {
String sql = "DROP TABLE IF EXISTS " + tableName;
try (Statement stmt = conn.createStatement()) {
try (Statement stmt = getConnection().createStatement()) {
int rowsDeleted = stmt.executeUpdate(sql);
stmt.close();
System.out.println("已删除 " + rowsDeleted + " 行数据从表 " + tableName);
@ -336,7 +336,7 @@ public abstract class SQLiteManager {
private void createSqlOfTable(BuildSqlTable table) {
String tableName = table.getName();
try {
Statement statement = conn.createStatement();
Statement statement = getConnection().createStatement();
List<BuildSqlItem> items = table.getItem();
StringBuilder sql = new StringBuilder();
sql.append("CREATE TABLE `")
@ -392,6 +392,16 @@ public abstract class SQLiteManager {
config.enforceForeignKeys(true);
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();