Первый

This commit is contained in:
2024-11-18 22:17:38 +05:00
commit 6cd3bb5e65
12 changed files with 4118 additions and 0 deletions

89
DBTools.java Normal file
View File

@ -0,0 +1,89 @@
package tools;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.jdbc.core.RowMapper;
import tctable.Tools;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
public class DBTools {
public static class JsonRowMapper implements RowMapper<String> {
@Override
public String mapRow(ResultSet rs, int rowNum) throws SQLException {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> resultMap = new HashMap<>();
// Получаем метаданные ResultSet для получения названий столбцов
int columnCount = rs.getMetaData().getColumnCount();
for (int i = 1; i <= columnCount; i++) {
String columnName = rs.getMetaData().getColumnName(i);
Object columnValue = rs.getObject(i);
resultMap.put(columnName, columnValue);
}
// Преобразовываем Map в JSON строку
try {
return objectMapper.writeValueAsString(resultMap);
} catch (Exception e) {
throw new RuntimeException("Failed to convert Map to JSON", e);
}
}
}
public static boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
if (columnName.equalsIgnoreCase(metaData.getColumnName(i))) {
return true;
}
}
return false;
}
public static String getSQLValue(String t, String v) {
//if($t=='object' && (strtoupper($v)!='NULL' && gettype($v)=='string')) $t='string'; //Если id шники uuid
if (t.equals("object") || t.equals("uid")) {
if (v.equals(""))
v = "NULL";
} else if (t.equals("i4") || t.equals("integer")) {
if (v.equals(""))
v = "NULL";
} else if (t.equals("f8")) {
if (v.equals(""))
v = "NULL";
v = Tools.replaceAll(v,",", "."); //The decimal part: point.
} else if (t.equals("f4")) {
if (v.equals(""))
v = "NULL";
v = Tools.replaceAll(v,",", "."); //The decimal part: point.
} else if (t.equals("b")) {
if (v.equals(""))
v = "NULL";
else if (v.equals("1"))
v = "true";
else if (v.equals("0"))
v = "false";
} else if (t.equals("string") || t.equals("text") || t.equals("dateTime") || t.equals("date")) {
if (v.equals("")) {
v = "NULL";
} else {
v = Tools.replaceAll(v,"'", "''");
v = "'" + v + "'";
}
} else {
v = "'" + v + "'";
}
return v;
}
}