powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как грамотно сформировать оператор insert?
16 сообщений из 16, страница 1 из 1
Как грамотно сформировать оператор insert?
    #38054309
genya-123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо вставить в БД запись состоящую из 30-ти полей... Сформировал строку получился длиннющий... Да еще и кавычки в данных разные наводят смуту... Получился такой оператор, что и показывать стыдно..Как сделать более красивый запрос???

insert into t001rep set Name=qqq,TransformU=НКФ-110-57У11;ClassPresition=0.5;LocationInstall=ПС № 29В «Транзитная» 110/6 кВ, ОРУ-110 кВ, 2 СШ, «ТН-110 кВ», ф. А;VoltageFirst=110000/3;VoltageSecond=100/3;Frequency=50.0;Enterprise=ЗВА, 1980 г.;Belong=ОАО «СУЭК-Красноярск», Филиал «Разрез Назаровский»;NameRefrenceStandart=Делитель напряжения;TypeRefrenceStandart=ДН-220пт;NumberRefrenceStandart=8.0;ErrorD80Percent=2.4;ErrorD80=0.098;ErrorD100Percent=3.3;ErrorD100=0.098;ErrorD120Percent=3.3;ErrorD120=0.98;DeviceCompareType=РКЗ.01ПТ;DeviceCompareNumber=176.0;DeviceCompareDataCheck=Tue Apr 05 00:00:00 KRAT 2011;ViewCheck=0;Voltage100=400.0;odps80_1=0.33;odps100_1=0.29;odps120_1=0.28;odps80_2=3.3;odps100_2=5.6;odps120_2=10.4;odps80_1_1=-0.31;odps100_1_1=-0.35;odps120_1_1=-0.36;odps80_2_1=1.4;odps100_2_1=3.8;odps120_2_1=4.7;pptb80_1=0.33;pptb100_1=0.29;pptb120_1=0.28;pptb80_2=3.3;pptb100_2=5.6;pptb120_2=10.4;pptb80_1_1=-0.31;pptb100_1_1=-0.36;pptb80_2_1=4.7;pptb100_2_1=0.0;pptb120_2_1=0.0;Resolution=0;InspectionMan=А.Г. Варфаламеев;DataInspection=Thu Mar 01 00:00:00 KRAT 2012;UserName=;WorksNumber=12134;

Вот кусок программы, формирующий этот оператор...
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
 String StringSets="Name=qqq,";
     StringSets+="TransformU="+Rprt.TransformU+";";
     StringSets+="ClassPresition="+Rprt.ClassPresition+";";
     StringSets+="LocationInstall="+Rprt.LocationInstall+";";
     StringSets+="VoltageFirst="+Rprt.VoltageFirst+";";
     StringSets+="VoltageSecond="+Rprt.VoltageSecond+";";
     StringSets+="Frequency="+Rprt.Frequency+";";
     StringSets+="Enterprise="+Rprt.Enterprise+";";
     StringSets+="Belong="+Rprt.Belong+";";
     StringSets+="NameRefrenceStandart="+Rprt.NameRefrenceStandart+";";
     StringSets+="TypeRefrenceStandart="+Rprt.TypeRefrenceStandart+";";
     StringSets+="NumberRefrenceStandart="+Rprt.NumberRefrenceStandart+";";
     StringSets+="ErrorD80Percent="+Rprt.ErrorD80Percent+";";
     StringSets+="ErrorD80="+Rprt.ErrorD80+";";
     StringSets+="ErrorD100Percent="+Rprt.ErrorD100Percent+";";
     StringSets+="ErrorD100="+Rprt.ErrorD100+";";
     StringSets+="ErrorD120Percent="+Rprt.ErrorD120Percent+";";
     StringSets+="ErrorD120="+Rprt.ErrorD120+";";
     StringSets+="DeviceCompareType="+Rprt.DeviceCompareType+";";
     StringSets+="DeviceCompareNumber="+Rprt.DeviceCompareNumber+";";
     StringSets+="DeviceCompareDataCheck="+Rprt.DeviceCompareDataCheck+";";
     StringSets+="ViewCheck="+Rprt.ViewCheck+";";
     StringSets+="Voltage100="+Rprt.Voltage100+";";
     StringSets+="odps80_1="+Rprt.odps80_1+";";
     StringSets+="odps100_1="+Rprt.odps100_1+";";
     StringSets+="odps120_1="+Rprt.odps120_1+";";
     StringSets+="odps80_2="+Rprt.odps80_2+";";
     StringSets+="odps100_2="+Rprt.odps100_2+";";
     StringSets+="odps120_2="+Rprt.odps120_2+";";
     StringSets+="odps80_1_1="+Rprt.odps80_1_1+";";
     StringSets+="odps100_1_1="+Rprt.odps100_1_1+";";
     StringSets+="odps120_1_1="+Rprt.odps120_1_1+";";
     StringSets+="odps80_2_1="+Rprt.odps80_2_1+";";
     StringSets+="odps100_2_1="+Rprt.odps100_2_1+";";
     StringSets+="odps120_2_1="+Rprt.odps120_2_1+";";
     StringSets+="pptb80_1="+Rprt.pptb80_1+";";
     StringSets+="pptb100_1="+Rprt.pptb100_1+";";
     StringSets+="pptb120_1="+Rprt.pptb120_1+";";
     StringSets+="pptb80_2="+Rprt.pptb80_2+";";
     StringSets+="pptb100_2="+Rprt.pptb100_2+";";
     StringSets+="pptb120_2="+Rprt.pptb120_2+";";
     StringSets+="pptb80_1_1="+Rprt.pptb80_1_1+";";
     StringSets+="pptb100_1_1="+Rprt.pptb120_1_1+";";
     StringSets+="pptb80_2_1="+Rprt.pptb80_2_1+";";
     StringSets+="pptb100_2_1="+Rprt.pptb100_2_1+";";
     StringSets+="pptb120_2_1="+Rprt.pptb120_2_1+";";
     StringSets+="Resolution="+Rprt.Resolution+";";
     StringSets+="InspectionMan="+Rprt.InspectionMan+";";
     StringSets+="DataInspection="+Rprt.DataInspection+";";
     StringSets+="UserName="+Rprt.UserName+";";
     StringSets+="WorksNumber="+Rprt.WorksNumber+";";
     
     System.out.println("insert into t001rep set "+StringSets);
	ResultSet rs = null;
	try {
		rs = stmt.executeQuery("insert into t001rep set "+StringSets);
	} catch (SQLException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054325
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genya-123,
а чем параметры не угодили?
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054340
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genya-123,

1. параметры верно сказали
2. если там 30 полей, то менее 30 строк не будет. Можно только в отдельный модуль вынести. Чтобы глаза не мозолило.
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054352
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genya-123
Код: java
1.
"TransformU="+Rprt.TransformU+";";

одна точка с запятой здесь лишняя
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054542
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это не bulk/batch операции и нагрузка не сильная то можно любой ORM-entity сделать. Будет
красиво и кошерно. И не стыдно показать будет
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054569
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
правда кода будет точно больше (суммарного) ))
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054700
pasha701
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    private static final String[] FIELDS = { "TransformU", "ClassPresition", "LocationInstall", "VoltageFirst", "VoltageSecond" }; 
    String generateSQL(Rprt Rprt){
        String [] values ={Rprt.TransformU,Rprt.ClassPresition,Rprt.LocationInstall,Rprt.VoltageFirst,Rprt.VoltageSecond};
        StringBuilder sql=new StringBuilder();
        for (int i = 0; i < FIELDS.length; i++) {
            sql.append(FIELDS[i]+"="+values[i]+";");
        }
        sql.deleteCharAt(sql.length()-1);
        return sql.toString();
    }
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054711
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pasha701,
Код: java
1.
процедура ("TransformU", "ClassPresition", "LocationInstall", "VoltageFirst", "VoltageSecond", ........



будет тот же эффект.
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054739
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

ну и пусть будет, зато не будет этой жути со строками в коде
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054759
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerPetro123,
ну и пусть будет, зато не будет этой жути со строками в коде
первый твой пост - параметры и убрать из БЛ и кода завернув в утилиты.
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054815
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mayton,
правда кода будет точно больше (суммарного) ))
Ему нужно красиво. Это и будет красиво и в духе технологии.
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054824
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
в духе технологии
Нажмиии на кнопку, получишь результааат, и твоя мечта осуществииииицааааа
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38054863
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetro123mayton,
правда кода будет точно больше (суммарного) ))
Ему нужно красиво. Это и будет красиво и в духе технологии.
я не спорю, что:
- вверху его код - это мапинг на SQL код
- при ОРМ будет маппинг на ОРМ

выбирай на вкус)))
/topic/12992#57518
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38055561
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
Map<String,String> data = ...;
executeQuery("insert into t001rep  populate_record(null::t001rep,?::hstore)",data);
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38055562
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает в Postgresql
...
Рейтинг: 0 / 0
Как грамотно сформировать оператор insert?
    #38055568
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторodps120_2=10.4;odps80_1_1=-0.31;odps100_1_1=-0.35;odps120_1_1=-0.36;odps80_2_1=1.
Эдгар Кодд недоволен твоим проектированием БД.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как грамотно сформировать оператор insert?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]