Package ru.bitel.bgbilling.server.util
Class ServerUtils
java.lang.Object
ru.bitel.bgbilling.server.util.ServerUtils
Серверный утилс. Работа с соединениями с БД.
Также содержит методы импортируемые в xslt-шаблонах.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddItemsFromRS
(Connection con, XMLStreamWriter whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2) addItemsFromRS
(Connection con, XMLStreamWriter whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2, String joins) addItemsFromRS
(Connection con, Element whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2) addItemsFromRS
(Connection con, Element whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2, String joins) static void
addNoCache
(jakarta.servlet.http.HttpServletResponse response) static void
changeLastModificationTime
(Connection con, String param) static void
checkAndCreatePeriodicTableName
(Connection con, String tableName, String createQuery) Функция берет имя таблицы(xxxx) из xxxx_mid_yyyyMM и создает ееstatic void
checkPeriod
(Date date1, Date date2) проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=nullstatic void
checkTable
(Connection con, String tableName, String createQuery) проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableNamestatic final void
Безопасное закрытие одного соединения с БД.static final void
closeConnection
(Connection... con) Безопасное закрытие одного или нескольких соединений с БД.static final void
closeConnection
(Connection con, Connection conSlave) Безопасное закрытие одного или двух соединений с БД.static boolean
columnExist
(Connection con, String table, String column) static final void
Каммит одного соединения с БД.static void
createDirectoriesOnFTP
(org.apache.commons.net.ftp.FTPClient ftpConnect, String pathOnFTP) Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаётstatic String
dateToString
(String source, String inPattern, String outPattern) static void
deleteRowsFromTable
(Connection con, String table, String keyColumn, String keyValue, String retColumn) static void
dropExistColumn
(Connection con, String table, String column) static final void
dropExistTable
(Connection con, String tableName) static String
formatNumber
(Number value, String formatPattern) Используется XSLT скриптами в качестве расширения.static int
foundRows
(Connection con) getEntriesFromZip
(ZipInputStream zis, String mask) getFileEntriesFromZipByPrefix
(ZipInputStream zis, String prefix) static Calendar
getLastModificationTime
(Connection con, String param) static String
getModuleMonthDayTableName
(String name, Date time, int moduleId) Вернет name_mid_yyyyMMdd</>static String
getModuleMonthTableName
(String name, LocalDate time, int moduleId) static String
getModuleMonthTableName
(String name, Date time, int moduleId) Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
name_mid_yyyyMM</>static String
getModuleTableName
(String name, int mid) Функция выдает название таблицы на основании префикса и кода модуля name_mid</>static String
getMonthTableName
(String name, Date time) Вернет name_yyyyMM</>static String
getQuestions
(int count) Получаем строку вида ?Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублированиеstatic String
общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)static String
getSetupValue
(Connection con, String name) static String
getSetupValue
(Connection con, String name, String defaultValue) Возвращает данные из таблицы setupstatic BufferedReader
getSocketIn
(Socket socket) static PrintWriter
getSocketOut
(Socket socket) static int
lastInsertId
(Connection con) static int
static long
static void
static void
static void
removeSetupValue
(Connection con, String name) static String
Используется XSLT скриптами в качестве расширения.static void
resultSetToXML
(ResultSet rs, XMLStreamWriter whereAdd, String table) static void
resultSetToXML
(ResultSet rs, Element whereAdd, String table) сериализует таблицу в XML елементstatic final void
setAutoCommit
(Connection con, boolean auto) static void
setSetupValue
(Connection con, String name, String value) static boolean
tableExists
(Connection con, String table) Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращенийstatic String
Используется XSLT скриптами в качестве расширения.static final String
uptimeStatus
(Date startTime) Сстатус uptime чего либо.static String
Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode.static String
Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком.static String
valueOrDefault
(String value, String defaultValue) Используется XSLT скриптами в качестве расширения.
-
Constructor Details
-
ServerUtils
public ServerUtils()
-
-
Method Details
-
tableExists
Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращений- Parameters:
con
- объект доступа к БДtableName
- имя проверяемой таблицы- Returns:
- true - таблица существует, false - таблица не существует или нет доступа к БД
- Throws:
SQLException
- если возникают проблемы с доступом к БД
-
columnExist
-
dropExistColumn
- Throws:
SQLException
-
addItemsFromRS
public static List<String> addItemsFromRS(Connection con, Element whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2) throws SQLException, XMLStreamException - Throws:
SQLException
XMLStreamException
-
addItemsFromRS
public static List<String> addItemsFromRS(Connection con, Element whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2, String joins) throws SQLException, XMLStreamException - Throws:
SQLException
XMLStreamException
-
addItemsFromRS
public static List<String> addItemsFromRS(Connection con, XMLStreamWriter whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2) throws SQLException, XMLStreamException - Throws:
SQLException
XMLStreamException
-
addItemsFromRS
public static List<String> addItemsFromRS(Connection con, XMLStreamWriter whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2, String joins) throws SQLException, XMLStreamException - Throws:
SQLException
XMLStreamException
-
deleteRowsFromTable
public static List<String> deleteRowsFromTable(Connection con, String table, String keyColumn, String keyValue, String retColumn) throws SQLException - Throws:
SQLException
-
getModuleMonthTableName
-
getModuleMonthTableName
Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
name_mid_yyyyMM</> -
getModuleMonthDayTableName
Вернет name_mid_yyyyMMdd</> -
getModuleTableName
Функция выдает название таблицы на основании префикса и кода модуля name_mid</> -
getMonthTableName
Вернет name_yyyyMM</> -
prepareElementToSerialize
-
checkTable
public static void checkTable(Connection con, String tableName, String createQuery) throws SQLException проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableName- Throws:
SQLException
-
uptimeStatus
Сстатус uptime чего либо. Используется в отдельнозапущенных серверах для инфы в статусе.- Parameters:
startTime
- время запуска этого "что-либо"- Returns:
- некая uptime-информация в виде строки
-
getSetupValue
-
getSetupValue
Возвращает данные из таблицы setup- Parameters:
con
-name
- имя параметраdefaultValue
- значение по умолчанию- Returns:
- значение из таблицы если есть запись с заданным именем, иначе defaultValue
-
setSetupValue
-
removeSetupValue
-
getLastModificationTime
-
lastInsertId
- Throws:
SQLException
-
lastInsertId
- Throws:
SQLException
-
lastInsertLongId
- Throws:
SQLException
-
foundRows
- Throws:
SQLException
-
changeLastModificationTime
-
closeConnection
Безопасное закрытие одного или нескольких соединений с БД.- Parameters:
con
-
-
closeConnection
Безопасное закрытие одного соединения с БД. Более быстр по сравнению сcloseConnection(Connection...)
, т.к. на каждый вызов не создаётся массив.- Parameters:
con
- - соединение, не может быть null
-
closeConnection
Безопасное закрытие одного или двух соединений с БД. Более быстр по сравнению сcloseConnection(Connection...)
, т.к. на каждый вызов не создаётся массив.- Parameters:
con
- - первое соединение, не может быть nullconSlave
- - второе соединенеи может быть null
-
commitConnection
Каммит одного соединения с БД.- Parameters:
con
- - соединение.
-
getRanges
Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублирование- Parameters:
gid
-range
-- Returns:
-
getEntriesFromZip
-
resultSetToXML
сериализует таблицу в XML елемент- Throws:
SQLException
-
getFileEntriesFromZipByPrefix
-
getSocketOut
- Throws:
Exception
-
getSocketIn
- Throws:
Exception
-
dropExistTable
- Throws:
SQLException
-
setAutoCommit
-
resultSetToXML
public static void resultSetToXML(ResultSet rs, XMLStreamWriter whereAdd, String table) throws SQLException, XMLStreamException - Throws:
SQLException
XMLStreamException
-
replace
Используется XSLT скриптами в качестве расширения.- Parameters:
value
-from
-to
-- Returns:
-
urlencode
Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком. personalAcc=adfuf|name=mmmmm personalAcc%3Dadfuf%2Fname%3Dmmmmm Используется XSLT скриптами в качестве расширения. -
urldecode
Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode. Используется XSLT скриптами в качестве расширения. -
valueOrDefault
Используется XSLT скриптами в качестве расширения.- Parameters:
value
-defaultValue
-- Returns:
-
formatNumber
Используется XSLT скриптами в качестве расширения.- Parameters:
value
-formatPattern
-- Returns:
-
upd5
Используется XSLT скриптами в качестве расширения.- Parameters:
doc1
-doc2
-date1
-date2
-- Returns:
-
dateToString
-
recycle
-
addNoCache
public static void addNoCache(jakarta.servlet.http.HttpServletResponse response) -
deleteDir
-
getQuestions
Получаем строку вида ?,?,?- Parameters:
count
-- Returns:
-
createDirectoriesOnFTP
public static void createDirectoriesOnFTP(org.apache.commons.net.ftp.FTPClient ftpConnect, String pathOnFTP) throws IOException Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаёт- Parameters:
ftpConnect
- коннект с FTP серверомpathOnFTP
- абсолютный путь до нужной директории- Throws:
IOException
-
checkPeriod
проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=null- Throws:
ru.bitel.bgbilling.common.BGException
-
getServerHome
общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд) -
checkAndCreatePeriodicTableName
public static void checkAndCreatePeriodicTableName(Connection con, String tableName, String createQuery) Функция берет имя таблицы(xxxx) из xxxx_mid_yyyyMM и создает ее- Parameters:
con
-tableName
-createQuery
-
-