Чтобы преодолеть подобную проблему, я сделал таблицу, которую я вставляю, чтобы иметь уникальный столбец. Используя ваш пример, при создании я бы хотел что-то вроде:
name VARCHAR(20),
UNIQUE (name)
, а затем использовать следующий запрос при вставке в него:
INSERT IGNORE INTO train
set table_listnames='Rupert'
В Android у вас нет MVC, но у вас есть следующее:
Нет единого шаблона MVC, который вы могли бы подчиняться. MVC просто более или менее заявляет, что вы не должны смешивать данные и представление, так что, например, представления отвечают за хранение данных или классов, которые обрабатывают данные, непосредственно влияющие на представление.
Тем не менее, из-за того, как Android работает с классами и ресурсами, иногда даже приходится следовать шаблону MVC. На мой взгляд, более сложными являются действия, которые иногда отвечают за представление, но в то же время действуют как контроллер.
Если вы определяете свои представления и макеты в файлах XML, загружаете ресурсы из папки res, и если вы избегаете более или менее смешивать эти вещи в своем коде, то вы в любом случае следуете шаблону MVC.
Действия, представления и действия в Android являются встроенным способом работы с пользовательским интерфейсом Android и представляют собой реализацию паттерна модель-вид-модель (MVVM), который структурно похож (в том же семействе, что и модель-вид-контроллер).
Насколько мне известно, не существует способа выйти из этой модели. Возможно, это можно сделать, но вы, скорее всего, потеряете все преимущества существующей модели и вам придется переписать свой собственный слой пользовательского интерфейса, чтобы заставить его работать.
Создание пользовательского интерфейса Android с использованием макетов, ресурсов, действий и намерений — это реализация шаблона MVC. Подробнее об этом см. по следующей ссылке: http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf