Spring JDBC: Как составить таблицы?

Я использую Spring JdbcTemplate с шаблоном ДАО для доступа к базе данных. Вместо того, чтобы создать таблицы базы данных вручную, я ищу способ генерировать таблицы в уровне DAO. Я понимаю, что могу использовать JdbcTemplate для выполнения операторов я только ищу правильное место, чтобы сделать это.

Существует ли лучшая практика для этого?

5
задан dustin.schultz 10 February 2018 в 19:44
поделиться

3 ответа

Слегка оффтоп:

Это абсолютно необходимо, чтобы вам нужно выполнить команды DDL из строя в вашем коде? На самом деле я думаю, что это хорошая идея, чтобы иметь разделение между администратором DB и использованием БД. Наша настройка безопасности базы данных Oracle здесь фактически устанавливается так, чтобы таблицы были настроены с использованием другого пользователя базы данных (DB_owner), чем тот, который работает на выборах, вставках, удаления управляются DB_USER.

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

Я полагаю, что это зависит от характера вашего сервиса / приложения, но подумайте о преимуществе создания таблиц внутри кода (и может ли возможная ошибка в коде DDL-код может случайно уничтожать производственные данные).

2
ответ дан 14 December 2019 в 01:08
поделиться

Когда я работаю со своей ViewModel, у меня будет свойство CategureId и на него будет помещен мой валидатор диапазона, а не раскрывающийся список. Список выбора предоставляет только те данные, которые проверяются по модели.

 [Required(ErrorMessage = "Category Required")]
    [System.ComponentModel.DataAnnotations.Range(1, double.MaxValue, ErrorMessage = "Please Select A Category")]
    [DisplayName("Category")]
    public int CategoryId {get;set;}

В представлении у меня будет раскрывающийся список с идентификатором для моей категории, но список из моих категорий:

<%= Html.DropDownList("CategoryId", (SelectList)Model.Categories, "(Select)")%>    

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

-121--4904114-

Я загрузил застежку -молнию на Drop.io .

На боковой заметке: Скотт Хансельман имеет запись в блоге , в которой он рассказывает о некоторых темах Visual Studio, стоит посмотреть!


ПРАВКА : 21 Ян 2011
Drop.io прекратил обслуживание, так как он был куплен Facebook. Я загрузил застежку -молнию на мой skydrive вместо:

https://skydrive.live.com/?cid=07d66fa40734f332&sc=documents&id=7D66FA40734F332! 833 (может потребовать входа)

Спасибо, что указали на это, Уилл!

-121--3959401-

Используйте методы .update () , доступные в (Simple) JdstartOperations , количество возвращаемых строк - это количество затронутых строк. Они должны использоваться специально для операторов INSERT и UPDATE .

1
ответ дан 14 December 2019 в 01:08
поделиться

Вы можете использовать метод Execute (String) :

public void execute(String sql) throws DataAccessException

Выдайте один execute SQL, как правило, оператор DDL.
Указанный: Execute In Interface JDBCoPerations

Параметры: SQL - Статический SQL для выполнения

броски: DataaccessException - если есть какие-либо проблемы

Однако, как упоминание Beny23, я был бы подозрительным к фактической необходимости сделать это программически в живое приложение.

6
ответ дан 14 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: