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

OSCHINA-MIRROR/piaoniu-pndao

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 6.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 04:52 9536374

pndao

Один простой вспомогательный инструмент MyBatis, который может помочь вам генерировать и поддерживать SQL-запросы на основе соглашения об именовании DAO.

pndao — это инструмент, разработанный командой Java-разработчиков «Билет Ню». В процессе реальной работы он сократил более 80% повторяющейся работы по написанию SQL, позволяя сосредоточиться на разработке самой модели. В сочетании с плагином для генерации операторов создания таблиц pngen в большинстве случаев достаточно написать один класс модели для завершения работы слоя DAO.

Особенности

  1. Поддержка наиболее популярных фреймворков MyBatis без необходимости обучения.
  2. Основан на общих функциях DAO, обеспечивая удобство и одновременно ограничивая соглашение об именах.
  3. Возможность синхронизации изменений в структуре таблицы с изменениями в SQL.
  4. Генерация XML во время компиляции, а также поддержка других фреймворков.

Вот пример типичной функции DAO:

public class UserDaoTest extends AbstractTest{

	public static final int USER_ID = 1;

	@Autowired
	private UserDao userDao;

	@Test
	public void testInsertUser() throws Exception {
		User user = initUser();
		assertThat(userDao.insert(user)).isEqualTo(1);
	}

	@Test
	public void testFindUserById() throws Exception {
		User user = userDao.findById(USER_ID);
		assertThat(user).isNotNull();
	}

	@Test
	public void testUpdateUserName() throws Exception {
		assertThat(userDao.updateForUserName("用户13700000001",USER_ID)).isEqualTo(1);
	}
}

На основе pndao все необходимые для разработки DAO методы выглядят так:

@DaoGen
public interface UserDao {

	int updateForUserName(@Param("userName") String userName, @Param("id") int id);

	int insert(User t);

	User findById(int id);

}

Использование

1. Добавьте зависимость pndao

    <artifactId>pndao</artifactId>
        <groupId>com.piaoniu</groupId>
        <version>0.2.0</version>

2. Если вы используете MyBatis, просто добавьте аннотацию @DaoGen к Dao.

3. pndao будет использовать ваши собственные SQL (включая аннотации и XML), поэтому не беспокойтесь о том, что существующие DAO перестанут работать.

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

5. В настоящее время поддерживается только Java 8.

Рекомендуется сначала ознакомиться с примерами кода в pndao-example.

Поддерживаемые методы:

Метод Описание Пример Примечание
insert Вставка записи insert(User user) ID будет записан в первичный ключ пользователя
batchInsert Пакетная вставка записей batchInsert(List user) Возвращает количество вставленных записей
findBy Поиск одного элемента по столбцу findByUserName(String userName) Возвращает одну запись
queryBy Запрос нескольких элементов по столбцу queryByUserName(String userName) Возвращает несколько записей
countBy Подсчёт общего количества по столбцу countBy(String userName) Возвращает общее количество
update Обновление всех столбцов по первичному ключу update(User user) Возвращает обновлённое количество записей
updateFor Обновление одной колонки по первичному ключу updateForUserName(String userName,int id) Возвращает обновлённое количество записей

Настройка

  1. Если у вашей команды другое соглашение об именовании, чем у pndao:
    • Вы можете загрузить исходный код, изменить значение default префикса DaoGen и перекомпилировать.
    • Или вы можете использовать параметры компилятора -AtablePrefix=PN_ для изменения префикса таблицы по умолчанию. Вот пример:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <compilerArgument>-AtablePrefix=PNTS_</compilerArgument>
        </configuration>
    </plugin>
    
  2. pndao основан на аннотациях JSR269, которые используются для компиляционной генерации, и работает аналогично Lombok. Поэтому теоретически его можно настроить для генерации конфигурационного кода для любого фреймворка.

Обратная связь

Проект всё ещё находится в стадии бета-тестирования, и некоторые версии могут быть неполными. Мы приветствуем предложения, использование и отправку кода.

Адрес блога команды разработчиков Piao Niu: https://piaoniu.io/.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/piaoniu-pndao.git
git@api.gitlife.ru:oschina-mirror/piaoniu-pndao.git
oschina-mirror
piaoniu-pndao
piaoniu-pndao
master