1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jrl-mybatis-mapper

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md
#mybatis-mapper
После наследования Mapper от CrudMapper можно получить функции CRUD без необходимости писать файл mapper.xml.

### Правила загрузки SQL по умолчанию в MyBatis
MyBatis получает SQL двумя способами: через xml и SqlProvider. XML имеет более высокий приоритет, чем SqlProvider, и SQL в XML и SqlProvider не должен иметь одинаковые имена.

### Изменённые правила загрузки SQL после настройки mapper
1. Приоритет SQL: xml > SqlProvider > crudsql.
2. XML, SqlProvider и crudsql могут содержать SQL с одинаковыми именами, при этом действует тот, что имеет более высокий приоритет.

### Согласованные правила
1. Имя таблицы базы данных получается путём преобразования имени класса сущности из стиля «верблюжий» в стиль «змеиный», например, классы User и UserGroups соответствуют таблицам user и user_groups.
2. Имена свойств класса сущности по умолчанию соответствуют именам столбцов таблицы, игнорируя свойства, помеченные как transient.
3. Свойства id класса сущности (типы Long, long, Integer, int) по умолчанию сопоставляются с первичным ключом таблицы базы данных. Если используется другое имя свойства или стратегия первичного ключа, можно использовать аннотацию @PK для обозначения.
4. Если первичный ключ не использует стандартный id или не обозначен с помощью @PK, предполагается, что таблица базы данных не имеет уникального первичного ключа. Операции удаления, изменения и поиска, основанные на первичном ключе, не будут внедрены.

### Тестовый пример

public class UserMapperTest { public static void main(String[] args) { String resource = "mybatis.xml"; InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream(resource);

    // Здесь используется MybatisSessionFactoryBuilder для создания SqlSessionFactory с целью внедрения функций CrudMapper
    SqlSessionFactory sessionFactory = new MybatisSessionFactoryBuilder().build(in);
    SqlSession session = sessionFactory.openSession();
    UserMapper userMapper = session.getMapper(UserMapper.class);

    // В этом месте selectByPK переопределён selectByPK из файла UserMapper.xml
    User user = userMapper.selectByPK(2);
    System.out.println(user);

    user.setName("update_" + user.getName());
    // updateByPK наследуется от CrudMapper, в файле UserMapper.xml этот SQL не объявлен
    userMapper.updateByPK(user);

    // Здесь selectByPK снова переопределён файлом UserMapper.xml
    user = userMapper.selectByPK(user.getPk());
    System.out.println(user);

    session.commit();
}

}


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Mapper наследуется от CrudMapper, и после этого можно получить CRUD-функциональность без необходимости писать mapper.xml файл. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jrl-mybatis-mapper.git
git@api.gitlife.ru:oschina-mirror/jrl-mybatis-mapper.git
oschina-mirror
jrl-mybatis-mapper
jrl-mybatis-mapper
master