Там названы параметрами в JDBC вместо позиционных, как @name
, @city
в ADO.NET запрашивают ниже?
select * from customers where name=@name and city = @city
JDBC не поддерживает именованные параметры. Если вы не привязаны к использованию обычного JDBC (что причиняет боль, скажу я вам), я бы предложил использовать Springs Excellent JDBCTemplate, который можно использовать без всего IoC-контейнера.
NamedParameterJDBCTemplate поддерживает именованные параметры, вы можете использовать их следующим образом:
NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
MapSqlParameterSource paramSource = new MapSqlParameterSource();
paramSource.addValue("name", name);
paramSource.addValue("city", city);
jdbcTemplate.queryForRowSet("SELECT * FROM customers WHERE name = :name AND city = :city", paramSource);
Стандартный JDBC поддерживает только именованные параметры в CallableStatement
(например, setString ("name", name)
) , и даже в этом случае я подозреваю, что базовая реализация хранимой процедуры должна его поддерживать.
Пример использования именованных параметров:
//uss Sybase ASE sysobjects table...adjust for your RDBMS
stmt = conn.prepareCall("create procedure p1 (@id int = null, @name varchar(255) = null) as begin "
+ "if @id is not null "
+ "select * from sysobjects where id = @id "
+ "else if @name is not null "
+ "select * from sysobjects where name = @name "
+ " end");
stmt.execute();
//call the proc using one of the 2 optional params
stmt = conn.prepareCall("{call p1 ?}");
stmt.setInt("@id", 10);
ResultSet rs = stmt.executeQuery();
while (rs.next())
{
System.out.println(rs.getString(1));
}
//use the other optional param
stmt = conn.prepareCall("{call p1 ?}");
stmt.setString("@name", "sysprocedures");
rs = stmt.executeQuery();
while (rs.next())
{
System.out.println(rs.getString(1));
}
Просто введите?
т. е. вместо com.mycompany. $ {PRODUCT _ NAME: rfc1034identifier}
просто введите com.mycompany.MyApp
Если у вас есть несколько целевых объектов, которым нужны разные имена пакетов, один из способов сделать это - создать собственную переменную и использовать ее вместо этого.
В меню сборки (выберите свой проект и выберите Получить информацию) можно добавить собственные переменные в проект. Если сделать один из них MY_BUNDLE_NAME и установить его в MyApp, вы можете поместить com.mycompany. $ {MY _ BUNDLE _ NAME}
в файл plist. Для различных целей необходимо иметь возможность установки MY_BUNDLE_NAME различных значений.
Полагаю, именно для этого и нужен ПОСТ: «U» в «CRUD».
Вы проводите данные POST на существующий ресурс. Ресурс решает, что с ним делать, и обновляется. Кроме того, данные POST могут быть только фрагментом всего ресурса.
Подход Twitter IMHO не RESTful, потому что они перегружают GET.
-121--2717390-Нельзя использовать именованные параметры в самом JDBC. Можно попробовать использовать рамку Spring, поскольку она имеет некоторые расширения, позволяющие использовать именованные параметры в запросах.