tctable
This commit is contained in:
@ -40,7 +40,7 @@ public class TCTableTools {
|
||||
}
|
||||
|
||||
//Напиши функцию: Получить ассоциативный массив название полей таблицы и их тип
|
||||
public static Map<String, String> getTableSchema(Connection connection, String schemaName, String tableName) {
|
||||
public static Map<String, String> getTableSchema(Connection connection, String tableName) {
|
||||
Map<String, String> schemaMap = new HashMap<>();
|
||||
String query = """
|
||||
SELECT c.column_name,
|
||||
@ -56,8 +56,10 @@ public class TCTableTools {
|
||||
AND c.table_name = ?
|
||||
""";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
statement.setString(1, schemaName);
|
||||
statement.setString(2, tableName);
|
||||
String schema = Tools.beforeFirst(tableName,".");
|
||||
String table = Tools.afterLast(tableName,".");
|
||||
statement.setString(1, schema);
|
||||
statement.setString(2, table);
|
||||
try (ResultSet resultSet = statement.executeQuery()) {
|
||||
while (resultSet.next()) {
|
||||
String columnName = resultSet.getString("column_name");
|
||||
@ -71,4 +73,73 @@ public class TCTableTools {
|
||||
return schemaMap;
|
||||
}
|
||||
|
||||
public static String getSQLUpdate(TCTable tbl) {
|
||||
StringBuilder sql;
|
||||
sql = new StringBuilder("update " + tbl.name + " set ");
|
||||
for(int i=0;i<tbl.fields.size();i++)
|
||||
{
|
||||
if(tbl.fields.get(i).u_exists){
|
||||
if(!tbl.fields.get(i).name.equals("uid")) {
|
||||
sql.append(tbl.fields.get(i).name);
|
||||
switch (tbl.fields.get(i).type){
|
||||
case TCField.BD_UTF8_1_UUID:{
|
||||
sql.append("=main.strtouuid(?),");
|
||||
break;
|
||||
}
|
||||
case TCField.BD_UTF8_4_JSONB:{
|
||||
sql.append("=?::jsonb,");
|
||||
break;
|
||||
}
|
||||
case TCField.BD_UTF8_1_TIMESTAMP:{
|
||||
sql.append("=?::timestamp,");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
sql.append("=?,");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sql = new StringBuilder(sql.substring(0, sql.length() - 1));
|
||||
sql.append(" where uid=main.strtouuid(?)");
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
public static String getSQLInsert(TCTable tbl)
|
||||
{
|
||||
String sql="insert into "+tbl.name+"(";
|
||||
StringBuilder subSql1= new StringBuilder(" ");
|
||||
StringBuilder subSql2= new StringBuilder(" ");
|
||||
for(int i=0;i<tbl.fields.size();i++)
|
||||
{
|
||||
if(tbl.fields.get(i).u_exists){
|
||||
if(!tbl.fields.get(i).name.equals("uid")) {
|
||||
subSql1.append(tbl.fields.get(i).name);
|
||||
subSql1.append(",");
|
||||
switch (tbl.fields.get(i).type){
|
||||
case TCField.BD_UTF8_1_UUID:{
|
||||
subSql2.append("main.strtouuid(?),");
|
||||
break;
|
||||
}
|
||||
case TCField.BD_UTF8_4_JSONB:{
|
||||
subSql2.append("?::jsonb,");
|
||||
break;
|
||||
}
|
||||
case TCField.BD_UTF8_1_TIMESTAMP:{
|
||||
subSql2.append("?::timestamp,");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
subSql2.append("?,");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
subSql1.append("uid");
|
||||
subSql2.append("main.strtouuid(?)");
|
||||
sql+=subSql1+")values("+subSql2+");";
|
||||
return sql;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user