Переместил
This commit is contained in:
89
dbtools/DBTools.java
Normal file
89
dbtools/DBTools.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user