powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача Array в качестве параметра
25 сообщений из 32, страница 1 из 2
Передача Array в качестве параметра
    #39724341
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !
Необходимо передать и принять данные в типе Array (архитектуру класса не менять)
Подскажите плис

Код: 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.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
package Analitic; 

import java.io.IOException;
import java.math.BigDecimal;
import java.math.MathContext;
import java.sql.SQLException;
import oracle.sql.NUMBER;

import java.sql.*;
import oracle.jdbc.*;

public class Nbi_Exe 
{
	public String id_contract_sap;
	public double total_price;
	public int    duration_fate;
	public double span_row[];

	public static void Oracle
		 (
		  String _id_contract_sap[], 
		  NUMBER _total_price[],
		  NUMBER _duration_fate[],
		  Array  _span_row[]
	     ) 
	throws IOException, SQLException, ClassNotFoundException 
	{
		String id_contract_sap    = _id_contract_sap[0]; 
		try 
		{
		BigDecimal total_price    = new BigDecimal(    _total_price[0].doubleValue(),MathContext.DECIMAL64); 
		int duration_fate         = 5;
		BigDecimal span_row[] =new BigDecimal[duration_fate];

		for (int i = 1; i <= duration_fate; i++) 
		{
			span_row[i-1] = new BigDecimal(i);
		}

		_duration_fate[0] = new NUMBER(duration_fate);
		_span_row[0]      = span_row[0];    
                // во внешний массив представленный в качестве параметра (тип Array) необходимо вернуть вновь созданный span_row 
	    if(false) 
	    {
	    	_span_row[0]=((OracleConnection) DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
	    }
		} catch (Exception E) 
		{
		   throw new IOException(E.getMessage()+" "+id_contract_sap);
		}
	}
    

	public Nbi_Exe(String _id_contract_sap, double _total_price)
    throws SQLException, IOException, ClassNotFoundException 
	{
		this.id_contract_sap=_id_contract_sap;
		this.total_price    =_total_price;
		
		String[] id_contract_sap1=new String[]{_id_contract_sap}; 
        NUMBER[] total_price1    =new NUMBER[]{new NUMBER(total_price)}; 
		NUMBER[] duration_fate1  =new NUMBER[1];
        Array[]  span_row1       =new Array[1];
        this.Oracle(id_contract_sap1, total_price1,duration_fate1, span_row1);
        this.duration_fate=duration_fate1[0].intValue();
        this.span_row            =new double[this.duration_fate];    
		for (int i = 1; i <= duration_fate; i++) 
		{
			this.span_row[i-1] = (double) span_row1[0];
                        из параметра Array span_row1, необходимо запись данные в поле класса, представленное в качестве массива 
		}
	}
}



Повторно - архитектуру класса не менять - он является основополагающим и внедрен в базу данных
_span_row[0]=((OracleConnection) DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);

Буду признателен за пример и исправление в коде
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724394
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_X, Вы слышали что такое Java Code Conventions ?
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724442
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВы слышали что такое
код чужой наверняка
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724745
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

Вас смутил скрокозябренный формат ?
Исправляюсь
Код: 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.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

package Analitic; 

import java.io.IOException;
import java.math.BigDecimal;
import java.math.MathContext;
import java.sql.SQLException;
import oracle.sql.NUMBER;

import java.sql.*;
import oracle.jdbc.*;

public class Nbi_Exe 
{
	public String id_contract_sap;
	public double total_price;
	public int    duration_fate;
	public double span_row[];
	
	public static void Oracle(
			          Nbi_Exe _this,
                                  String _id_contract_sap[], 
		                  NUMBER _total_price[],
		                  NUMBER _duration_fate[],
		                  Array  _span_row[]
                                 ) 
        throws IOException, SQLException, ClassNotFoundException 
	{
		String id_contract_sap = _id_contract_sap[0]; 
		try 
		{
			BigDecimal total_price = new BigDecimal(_total_price[0].doubleValue(),MathContext.DECIMAL64); 
			int duration_fate      = 5;
			BigDecimal span_row[]  = new BigDecimal[duration_fate];
			for (int i = 1; i <= duration_fate; i++) 
			{
				span_row[i-1] = new BigDecimal(i);
			}
			_duration_fate[0] = new NUMBER(duration_fate);

			// нижеприведенный блок должен писать в _span_row[0]
			// аналогично _span_row[0]=((OracleConnection) DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
			// можно ли использовать тип java.sql.Array и непосредственно писать в него
			// http://www.javased.com/?api=java.sql.Array
			// текущий прием с передачей указателя на собственный объект мне кажется неудачным

			if(_this!=null)
			{
				_this.span_row = new double[duration_fate]; 
				for (int i = 1; i <= duration_fate; i++) 
				{
					_this.span_row[i-1] = span_row[i-1].doubleValue()+10.0*i;
				}   
			}	
			if(false) 
			{
				_span_row[0]=((OracleConnection) DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
			}
		} catch (Exception E) 
		{
			throw new IOException(E.getMessage()+" "+id_contract_sap);
		}
	}
    
	public Nbi_Exe(
                        boolean kind,
		        String _id_contract_sap, 
                        double _total_price
                      )
    	throws SQLException, IOException, ClassNotFoundException 
	{
		this.id_contract_sap    =_id_contract_sap;
		this.total_price        =_total_price;
		NUMBER[] _duration_fate = new NUMBER[1];
		Array[]  _span_row      = new Array[1];
		this.Oracle( 
                            (kind?this:null),
                            new String[]{_id_contract_sap},
                            new NUMBER[]{new NUMBER(total_price)},
                            _duration_fate,
                            _span_row
                           );
		this.duration_fate=_duration_fate[0].intValue();

		//Здесь бы хотел просканировать возвращенный _span_row и писать в поле созданного объекта
		//this.span_row = new double[this.duration_fate]; 
		//for (int i = 1; i <= this.duration_fate; i++) 
		//{
		//	this.span_row[i-1] = _span_row[i-1].doubleValue();
		//}   
	}
}
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

package Analitic;

import java.sql.*;
import java.util.Map;

import oracle.sql.NUMBER;

import java.io.IOException;

public class Execute 
{
    public static void main(String[] args)
    throws SQLException, IOException, ClassNotFoundException 
    {
    	Nbi_Exe b = new Nbi_Exe(true,"s123",0.0);
    	System.out.println(b.id_contract_sap);
    	System.out.println(b.duration_fate);
    	if(b.span_row!=null) 
    	{
    		System.out.println(b.span_row[0]);
    		System.out.println(b.span_row[1]);
    		System.out.println(b.span_row[2]);
    		System.out.println(b.span_row[3]);
    		System.out.println(b.span_row[4]);
    	}
    }
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724746
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaTsyklopВы слышали что такое
код чужой наверняка

Безусловно, код подключение массива из базы взят из HELP-ы
(можно поискать источник если это важно)
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724809
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_X, Вас должно смущать названия классов, переменных, параметров. Такой код невозможно читать.

Зачем передаётся массив, если берется один элемент?

Попробуйте оптимизировать код, улучшить. Глядите и сами сделаете то что нужно.
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724868
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopЗачем передаётся массив, если берется один элемент?

Код не смотрел, но не вижу ничего страшного в этом. Если метод используется в одном месте где берется больше одного элемента, а в другом только один, то логично, что нужно так и оставить, чтобы не городить под каждый вариант свои реализации. Всё же от постановки задач зависит...
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724888
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopHOME_X, Вас должно смущать названия классов, переменных, параметров. Такой код невозможно читать.

Зачем передаётся массив, если берется один элемент?

Попробуйте оптимизировать код, улучшить. Глядите и сами сделаете то что нужно.

Все зависит от того с какого языка Вы начинали свою деятельность в IT и что мило
и привычно Вашему пониманию


Первичный вопрос звучал - как организовать заполнение массива (типа java.sql.Array) - РУЦАМИ !!!!!!!!!
// нижеприведенный блок должен писать в _span_row[0]
// аналогично _span_row[0]=((OracleConnection)DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
// можно ли использовать тип java.sql.Array и непосредственно писать в него
// http://www.javased.com/?api=java.sql.Array - это возможные примеры
// текущий прием с передачей указателя на собственный объект мне кажется неудачным

Можете подсказать именно этот вопрос.

P.S.
Относительно "массива - если заполнен один элемент" это передача переменных из базы по ССЫЛКЕ
(рекомендации и уроки Oracle Database Programming Using Java and Web Services от Kuassi Mensah)

Спасибо
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724891
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicTsyklopЗачем передаётся массив, если берется один элемент?

Код не смотрел, но не вижу ничего страшного в этом. Если метод используется в одном месте где берется больше одного элемента, а в другом только один, то логично, что нужно так и оставить, чтобы не городить под каждый вариант свои реализации. Всё же от постановки задач зависит...

Если не сложно оцените плис
Меня интересует как

public static void Oracle(
Nbi_Exe _this,
String _id_contract_sap[],
NUMBER _total_price[],
NUMBER _duration_fate[],
Array _span_row[] <------- внести элементы массива НЕ !!! ссылаясь на механизмы базы Oracle
)

_span_row[0]=((OracleConnection)DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
Этой строки не должно быть, массив заполнить циклом и прочитать в конструкторе Nbi_Exe тоже циклом.
Сумеете помочь ?
Если возникли вопросы - спрашивайте (сигнатуры функции менять нельзя)
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724894
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_X,
Это моя прихоть, а принятые условности для всех. Это есть в каждом языке.
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39724895
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TsyklopHOME_X,
Это моя прихоть, а принятые условности для всех. Это есть в каждом языке.
Не моя прихоть.
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725344
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данный момент мне хватает джаваскрипта в реакте, с редаксом, со сторами и прочим, и плюс мешаниной из всего этого с присмесью к этому дтоошек, сущностей, процедур в оракле, вьюх и таблиц. И ВЕЗДЕ БЛ%;Ь названия полей по разному пишутся, те только кемелКейс где-то есть, где-то есть, но и сами названия. И их десятки для каждого элемента бизнес-процесса, а в сумме сотни. А еще документацию на процедуры базисты толком не пишут, да и на либы на джаве свои же сотрудники толком не дают описания.
Так что, перепишите, пожалуйста, код на человеческий язык, очень не хочется во что-то вникать, что вот так вот написано.
Я даже на англ. не стал переключаться, чтоб этот текст написать, до того устал от всего, а тут еще код в таком виде)))
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725387
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XTsyklopHOME_X, Вас должно смущать названия классов, переменных, параметров. Такой код невозможно читать.

Зачем передаётся массив, если берется один элемент?

Попробуйте оптимизировать код, улучшить. Глядите и сами сделаете то что нужно.

Все зависит от того с какого языка Вы начинали свою деятельность в IT и что мило
и привычно Вашему пониманию

неа не зависит. есть конвенция, есть требования. конечно вас никто не заставит писать так как НАДО и вы можете писать так как хочу.. но... я не спорю что написанное гамном на стене тоже читать можно :) но как-то неприятно чтоле.

дайте угадаю, какой язык вы тащите сюда.. эээ.... паскаль? турбо паскаль? ))
еще и форматирование с равном по центру ))) вы это руками чтоль так выставляли каждый раз? не лень было? нажмите ctrl-alt-L
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725391
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopHOME_X, Вас должно смущать названия классов, переменных, параметров. Такой код невозможно читать.

Зачем передаётся массив, если берется один элемент?

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

а код конечно да.

...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725405
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XTsyklopHOME_X, Вас должно смущать названия классов, переменных, параметров. Такой код невозможно читать.

Зачем передаётся массив, если берется один элемент?

Попробуйте оптимизировать код, улучшить. Глядите и сами сделаете то что нужно.

Все зависит от того с какого языка Вы начинали свою деятельность в IT и что мило
и привычно Вашему пониманию


Первичный вопрос звучал - как организовать заполнение массива (типа java.sql.Array) - РУЦАМИ !!!!!!!!!
// нижеприведенный блок должен писать в _span_row[0]
// аналогично _span_row[0]=((OracleConnection)DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
// можно ли использовать тип java.sql.Array и непосредственно писать в него
// http://www.javased.com/?api=java.sql.Array - это возможные примеры
// текущий прием с передачей указателя на собственный объект мне кажется неудачным

Можете подсказать именно этот вопрос.

P.S.
Относительно "массива - если заполнен один элемент" это передача переменных из базы по ССЫЛКЕ
(рекомендации и уроки Oracle Database Programming Using Java and Web Services от Kuassi Mensah)

Спасибо

вроде на русском написано )) а вроде и нет... чот я ничо не понимаю )) тебе что надо то?

если ты хочешь передать по "ссылке" (вернее, по значению ссылки) и это не примитив -- то просто передавай как обычный объект и всё. по значению передаются только примитивы. твой Аррай -- не примитив.

далее.. ты говоришь "как заполнить массив". ты про какой массив вещаешь? Array[] -- это прости за тафталогию, но уже массив массивов. причем, первый это массив в буквальном смысле слова, а второй - это массив как некий класс "Массив", который нифига не массив который массив.

вообще исходник - жесть. жестяная жесть.
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725442
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у вас не какой то особенный проект, то не пользуйтесь типами оракле при работе с ним.
Оракл позволяет работать с массивами, xml, звуками сетями и картами.

Но лучше считать что оракл это постгри или обычная база.
Либо выкинуть этот код и передать массив в хранимку jdbc.
Тогда будет один желающий из тысячи мемберов. Увы.
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725480
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XПервичный вопрос звучал - как организовать заполнение массива (типа java.sql.Array) - [u][b]РУЦАМИ !!!!!!!!!
Типа такого?
Код: 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.
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OraclePreparedStatement;

import java.sql.Array;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ArrayTest {

  private static final String USERNAME = "scott";
  private static final String PASSWORD = "tiger";
  private static final String URL = "jdbc:oracle:thin:@<host>:<port>:<sid>";

  public static void main(String[] args)
    throws SQLException {
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    OracleConnection con = (OracleConnection) DriverManager.getConnection(URL, USERNAME, PASSWORD);

    Integer[] intValues = {1, 2, 3, 4, 5};
    Array array = con.createOracleArray("SYS.ODCINUMBERLIST", intValues);

    OraclePreparedStatement st = (OraclePreparedStatement) con.prepareStatement("select * from table(cast(? as SYS.ODCINUMBERLIST))");
    st.setArray(1, array);

    ResultSet rs = st.executeQuery();
    while (rs.next()) {
      System.out.println(rs.getInt(1));
    }

    rs.close();
    st.close();
    con.close();
  }
}
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39725552
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Божественно!
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39726030
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XПодскажите плис

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

Глядя в хрустальный шар, я бы сказал, что вместо java.math.BigDecimal было бы хорошо использовать типы java.sql.

Например

https://docs.oracle.com/cd/E16338_01/appdev.112/e13995/oracle/sql/NUMBER.html
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39735361
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovТипа такого?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
    ......................
    OracleConnection con = (OracleConnection) DriverManager.getConnection(URL, USERNAME, PASSWORD);

    Integer[] intValues = {1, 2, 3, 4, 5};
    Array array = con.createOracleArray("SYS.ODCINUMBERLIST", intValues);
    .......................
    con.close();
  }
}



Извините господа - малость выпал из диалога !

Denis, заполните и прочитайте тип array циклом - без ссылки на базу (без класса con )
Возможно ли ?

Integer[] intValues = {1, 2, 3, 4, 5};
Array array = con.createOracleArray("SYS.ODCINUMBERLIST", intValues);


Подобный код уже имею -
_span_row[0]=((OracleConnection) DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);

он НЕ !!!!! универсален, применительно к моей задаче

Здесь набор примеров = http://www.javased.com/?api=java.sql.Array
Пытался сделать базируясь на них ...

Спасибо за Ваш труд (код)
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39735408
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XDenis, заполните и прочитайте тип array циклом - без ссылки на базу (без класса con )
Возможно ли ?
Как я понимаю, java.sql.Arrays - это интерфейс, т.е. надо искать его реализацию если охота заполнить его самостоятельно. И у тебя код вертится внутри базы, судя по "jdbc:default:connection", тогда откуда желание ей не пользоваться?
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39735869
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovКак я понимаю, java.sql.Arrays - это интерфейс, т.е. надо искать его реализацию если охота заполнить его самостоятельно. И у тебя код вертится внутри базы, судя по "jdbc:default:connection", тогда откуда желание ей не пользоваться?


Хотелось бы использовать этот код НЕ (!!!) только в базе.
Хотелось бы использовать его более широко,
- в базе в качестве статичного метода объекта
- как обособленный объект
На текущий момент реализовал два заполнения через параметрический
ключ, который является "ссылкой на себя" (_this)
Т.е. - если объект создан - пишу в поле = span_row
если объект пуст - подразумеваю что вызов сделан из базы - заполняю через интерфейс
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
                        if(_this!=null)
			{
				_this.span_row = new double[duration_fate]; 
				for (int i = 1; i <= duration_fate; i++) 
				{
					_this.span_row[i-1] = span_row[i-1].doubleValue()+10.0*i;
				}   
			}	
			if(_this==null) 
			{
				_span_row[0]=((OracleConnection) DriverManager.getConnection("jdbc:default:connection")).createARRAY("FDNBI",span_row);
			}


Хотелось бы сделать более архитектурную и правильную реализацию

Denis Popovискать его реализацию если охота заполнить его самостоятельно

Насколько это сложно и трудоемко ?
Можете помочь/подсказать ?
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39735920
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XНасколько это сложно и трудоемко ?
Можете помочь/подсказать ?
Да не думаю что трудно, особенно если не требуется реализовывать все методы интерфейса.

К примеру: http://tech.valgog.com/2009/02/passing-arrays-to-postgresql-database.html
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39736099
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично мне задача топик стартера не ясна.
Denis PopovКак я понимаю, java.sql.Arrays - это интерфейс, т.е. надо искать его реализацию если охота заполнить его самостоятельно.
Тогда уж проще использовать СВОЙ тип (или стандартные коллекции).
Зачем sql типы использовать без базы - не очень понятно.

Разделить код который хочется "код НЕ (!!!) только в базе" и код интерфейся/обертки для вызова из БД

И проблема чудесным образом решится сама, без всякого мазохизма и издевательств над sql.array.

как организовать заполнение массива (типа java.sql.Array) - РУЦАМИ !!!!!!!!!

java.sql - в данном случае, внутренние типы Oracle. Можно посмотреть как они выглядят в байтовом виде и работать с ними "руцами". Но это совершенно дикая идея. Кроме того, никто не гарантирует, что от версии к версии бинарный формат не изменится. Т.ч. идея не только дикая, но еще и попахивает диверсией - много проблем для тех, кому придется поддерживать этот код после Вас.

Мало того, от завязки на Connection все равно не избавитесь.

более архитектурную и правильную реализацию

Отделить код бизнес-логики от интерфейсов/обертки для его вызова из "специфических" мест

В бизнес-коде, пользоваться стандартными типами, соответственно Oracle/PostgreSQL/что-то другое специфик свести к минимуму кода. В принципе, можно код "оберток" даже автогенерировать и не париться.
(например объектные типы Oracle можно мапить в java классы через JPublisher)

IMHO & AFAIK
...
Рейтинг: 0 / 0
Передача Array в качестве параметра
    #39737210
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovК примеру: http://tech.valgog.com/2009/02/passing-arrays-to-postgresql-database.html


Принято к изучению !
Спасибо
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача Array в качестве параметра
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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