Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 128 129 130 131 132 133 134 [135] 136 137   вперед  Ctrl
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47970
Zzz79
вообщем описания нет,джава доков нет и спросить по сути не у кого - как хочешь так и делай таску)

Велком еще раз в ентерпрайз. Ты сам этого хотел.

Знаешь чем хороший разработчик отличается от плохого? Думаешь скоростью кодинига? Нет. Ничего подобного.

Способностью дать эстимации по времени решения задачи. И дать информацию по рискам.

Ты сразу кидаешся кодить. Это похвально. А ты разбей сначала задачу на части. 1) Уяснить что и где лежит.
2) Сделать. 3) Протестировать что сделано.

Кстати первый пункт может занимать очень много. Это собственно и есть главная задача энтерпрайз-кодера.
Читать документацию и читать код. Чтение - вообще занимает львиную долю времени.

А делать - уже нефик делать когда все известно.
29 июл 20, 11:32    [22175026]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Вообщем вытащил из тред пула конекшн,наконец то достучался до нужной базы ,взял нужное значение

теперь задача все это грамотно реализовать- так как аргумент по которму я буду искать в бд значение и само значение нужно записать в хмл стрингу
<?xml version="1.0" encoding="UTF-8"?><PROPERTIES><PROPERTY NAME="CUSTOM_DICTIONARY_NAME" VALUE=""/><PROPERTY NAME="CUST_DIC_CAPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_COMPONENT_TYPE" VALUE="combobox"/><PROPERTY NAME="CUST_DIC_DYNAMIC_FILTER" VALUE=""/><PROPERTY NAME="CUST_DIC_HIDDEN_FILTER" VALUE="CODE='year' and (BEGIN_DATE is null or BEGIN_DATE &lt; CURRENT_DATE) and (END_DATE is null or END_DATE &gt; CURRENT_DATE)"/><PROPERTY NAME="CUST_DIC_ITEM_CAPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_ITEM_CODE" VALUE="year"/><PROPERTY NAME="CUST_DIC_ITEM_DESCRIPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_NAME" VALUE="doc/dic/custom/data"/><PROPERTY NAME="CUST_DIC_STATIC_FILTER" VALUE=""/><PROPERTY NAME="CUST_FIELD_FOR_CONTEXT_SEARCH" VALUE=""/></PROPERTIES>


эта строка в джейсоне и вот отсюда мне надо взять значение VALUE="CODE"='year' по нему найти значение в бд и подставить вот сюда
"CUST_DIC_ITEM_CAPTION" VALUE="ГодЗаДва" и сюда
"CUST_DIC_ITEM_DESCRIPTION" VALUE="ГодЗаДва"

хз как это делать лучше ,но чую попляшу щас с бубном


вот ребята чистый легаси проект как оно есть - задачи вырви глаз и порви опу
29 июл 20, 11:34    [22175028]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79
PetroNotC Sharp
пропущено...
нда. Видно что субд это не твое.
Логи не прогером написанные, а логи самой бд. Включаются галкой в конфиге субд.


еще раз для тех кто в танке - у нас нет доступа к ядру- все манипуляции с бд зашиты туда
еще раз тем кто в танке.
Не нужно ядро. Есть ли доступ к самой бд?
Либо к стенду с бд к самой бд?
Ты же все плачешь что они тебя не хотят. Вот и спроси про доступ к БД.
29 июл 20, 11:34    [22175029]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
согласен с тобой)

в данный момент я решил отойти от проектных xml - я не вижу в них необходимости,тем более в рамках поставленной задачи это нереально - я принял решение поюзать чистый ждбс - собсно результат у меня уже есть

осталось все это воткнуть в джейсон поле ,которое содержит xml строку)))
думаю тут скорей всего придется как то xml парсер использовать - других вариантов пока не вижу
29 июл 20, 11:37    [22175031]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

>Вообщем вытащил из тред пула конекшн,наконец то достучался до нужной базы ,взял нужное значение
Кто б сомневался. После вопроса в форум через час или проспавшись следует твоя фраза - всё решено.
Правда скилы по бд ты так и не повысил.
29 июл 20, 11:37    [22175032]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

>эта строка в джейсоне и вот отсюда мне надо взять значение VALUE="CODE"='year' по нему найти значение в бд и подставить вот сюда
=блин!
Выше говорили:
getValues(stringXML)
findValue(int id)
setValue....
Написал три метода?
29 июл 20, 11:42    [22175034]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
PetroNotC Sharp
Zzz79,

>Вообщем вытащил из тред пула конекшн,наконец то достучался до нужной базы ,взял нужное значение
Кто б сомневался. После вопроса в форум через час или проспавшись следует твоя фраза - всё решено.
Правда скилы по бд ты так и не повысил.

пока ничего не решено,так как я только достучался до нужной таблы,сейчас мне нужно распарсить правильно xml,который лежит в String который в свою очередь в json
взять там нужный аргумент и подставить два других
я думаю эта задачка будет ппохлеше чем конект к бд)
29 июл 20, 11:44    [22175036]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

Забыл ник тебе писал.
22174420
29 июл 20, 11:46    [22175037]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

Но то что он писал ты проигнорил.
Ушел в ПТ на 139 страницу
29 июл 20, 11:49    [22175043]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
PetroNotC Sharp
Zzz79,

>эта строка в джейсоне и вот отсюда мне надо взять значение VALUE="CODE"='year' по нему найти значение в бд и подставить вот сюда
=блин!
Выше говорили:
getValues(stringXML)
findValue(int id)
setValue....
Написал три метода?

щас буду писать )
29 июл 20, 12:14    [22175057]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47970
Стасян - какой-то взъерошенный.

Что там? Тех лид стоит с газетой свернутой в трубочку и бъет его по голове вопрошая - ну чо там? Когда будет фикс?

Что вообще за такая бешеная спешка?
29 июл 20, 12:18    [22175059]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Стасян - какой-то взъерошенный.

Что там? Тех лид стоит с газетой свернутой в трубочку и бъет его по голове вопрошая - ну чо там? Когда будет фикс?

Что вообще за такая бешеная спешка?

лид дома ) а на мне задачи висят )

теперь вот день на парсинг этого хмл уйдет
так как его структура кривая как долбаная сабля
29 июл 20, 13:01    [22175084]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47970
Не спеши. А то есть ощущение что ты прям в форуме принимаешь решение.

Мы тут конешно советчики шикарные - но ты пойми что мы судим в условиях на 80% нехватки
информации и все наши советы - это по сути вредные советы. Особенно по коду. Особенно
в части оценки объема работ. Мы ведь не видим его.

Ты сам должен думать и решать как делать. А наше дело - давать тебе психо-терапию
29 июл 20, 13:08    [22175091]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Не спеши. А то есть ощущение что ты прям в форуме принимаешь решение.

Мы тут конешно советчики шикарные - но ты пойми что мы судим в условиях на 80% нехватки
информации и все наши советы - это по сути вредные советы. Особенно по коду. Особенно
в части оценки объема работ. Мы ведь не видим его.

Ты сам должен думать и решать как делать. А наше дело - давать тебе психо-терапию


вот выше строчка xml она в стринг формате в реальности - нужно из нее достать элемент и положить другой - если в двух словах
29 июл 20, 13:11    [22175097]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,
По xml напиши метод. Уже сказали.
Валидность xml судят по отсутствии тега закрытия. Только открытый.
Разве у тебя так?
29 июл 20, 13:22    [22175107]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

Заволи тему и не плакай. Код показывай. А не xml.
29 июл 20, 13:23    [22175108]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47970
Zzz79
mayton
Не спеши. А то есть ощущение что ты прям в форуме принимаешь решение.

Мы тут конешно советчики шикарные - но ты пойми что мы судим в условиях на 80% нехватки
информации и все наши советы - это по сути вредные советы. Особенно по коду. Особенно
в части оценки объема работ. Мы ведь не видим его.

Ты сам должен думать и решать как делать. А наше дело - давать тебе психо-терапию


вот выше строчка xml она в стринг формате в реальности - нужно из нее достать элемент и положить другой - если в двух словах

Вот тут есть решение. https://www.baeldung.com/java-xpath

Если-бы я делал эту задачу то взял-бы исходники Баелдунга и просто адаптировал под твой случай.
Вообще если тебе надо что-то делать с документом и нужна серебрянная пуля - бери XPath.
29 июл 20, 18:00    [22175334]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3090
mayton
Zzz79
пропущено...


вот выше строчка xml она в стринг формате в реальности - нужно из нее достать элемент и положить другой - если в двух словах

Вот тут есть решение. https://www.baeldung.com/java-xpath

Если-бы я делал эту задачу то взял-бы исходники Баелдунга и просто адаптировал под твой случай.
Вообще если тебе надо что-то делать с документом и нужна серебрянная пуля - бери XPath.

Я УЖЕ сделал) и сдал таску)

если хотите могу выложить весь код - так как мне пришлось по крупицам собирать решение из гугла)
29 июл 20, 21:23    [22175418]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47970
Выложи.
29 июл 20, 22:59    [22175460]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Map;

public class CommonImporter {

	public  Document loadXMLFromString(String xml) throws Exception{
		DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
		DocumentBuilder builder =factory.newDocumentBuilder();
		InputSource is=new InputSource(new StringReader(xml));
		return builder.parse(is);
	}

	public  String getOldValue(NodeList list) {
		for (int i = 0; i < list.getLength(); i++) {
			Node node = list.item(i);
			if (node.getAttributes().getNamedItem("NAME").getTextContent().equalsIgnoreCase("CUST_DIC_ITEM_CODE")) {
				return node.getAttributes().getNamedItem("VALUE").getTextContent();
			}
		}return "";
	}

	public  String setNewValue(Map<String,String> map, Document document) throws TransformerException {
		NodeList list= nodeList(document);
		for (int i = 0; i < list.getLength(); i++) {
			Node node = list.item(i);
			if (node.getAttributes().getNamedItem("NAME").getTextContent().equalsIgnoreCase("CUST_DIC_CAPTION")) {
				node.getAttributes().getNamedItem("VALUE").setTextContent(map.get("caption"));
			}
			if (node.getAttributes().getNamedItem("NAME").getTextContent().equalsIgnoreCase("CUST_DIC_ITEM_CAPTION")) {
				node.getAttributes().getNamedItem("VALUE").setTextContent(map.get("caption"));
			}
			if (node.getAttributes().getNamedItem("NAME").getTextContent().equalsIgnoreCase("CUST_DIC_ITEM_DESCRIPTION")) {
				node.getAttributes().getNamedItem("VALUE").setTextContent(map.get("description"));
			}
		}
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer trans = tf.newTransformer();
		StringWriter sw = new StringWriter();
		trans.transform(new DOMSource(document), new StreamResult(sw));
		return sw.toString();
	}

	public  NodeList nodeList(Document document){
		return document.getDocumentElement().getChildNodes();
	}
}
30 июл 20, 15:47    [22175770]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
щас самый прикол я пишу на это все тесты)

уже погряз в тоннах моков)
30 июл 20, 15:49    [22175773]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47970
Zzz79, я сделал несколько механических эквивалентных преобразований и уменьшил объем кода.
Должно работать.

   public String setNewValue(Map<String,String> map, Document document) throws TransformerException {
        NodeList list= nodeList(document);
        for (int i = 0; i < list.getLength(); i++) {
            Node node = list.item(i);
            String textContent = node.getAttributes().getNamedItem("NAME").getTextContent();
            Node valueNode = node.getAttributes().getNamedItem("VALUE");
            if (textContent.equalsIgnoreCase("CUST_DIC_CAPTION") || textContent.equalsIgnoreCase("CUST_DIC_ITEM_CAPTION")) {
                valueNode.setTextContent(map.get("caption"));
            } else if (textContent.equalsIgnoreCase("CUST_DIC_ITEM_DESCRIPTION")) {
                valueNode.setTextContent(map.get("description"));
            }
        }
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer trans = tf.newTransformer();
        StringWriter sw = new StringWriter();
        trans.transform(new DOMSource(document), new StreamResult(sw));
        return sw.toString();
    }
30 июл 20, 16:39    [22175796]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton,там поле для рефактора огномное)

сегодня с утра пришел наш лид - все ему понравилось -но все равно надо переделывать
все передалал почти ,но споткнулся на одном тесте

там есть метод класс обертка над дао слоем-вообщем там суть такая я беру просто пишу селект там прам пам пам - и мне дается значение

но понятно что в тесте это не работает так как я мокаю этот метод и он почему то все равно пытается установить конект с бд
вообщем весь день тупо просидел над одним тестом так и не осилил
30 июл 20, 22:09    [22175894]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Transformer trans = tf.newTransformer();


Я прошу прощения, что вклиниваюсь.
Мне просто спросить :)

В Java вроде var завезли, это просто привычка или другие ограничения?
31 июл 20, 00:48    [22175907]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt,
Привычка.
31 июл 20, 07:25    [22175921]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 128 129 130 131 132 133 134 [135] 136 137   вперед  Ctrl
Все форумы / Java Ответить