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

OSCHINA-MIRROR/lwlspace-mini

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

Mini

Введение

Mini<1.0> — полуавтоматический фреймворк для отображения, который используется аналогично Mybatis, но без использования SQL-запросов в формате XML. Вместо этого используются аннотации.

Архитектура программного обеспечения

Архитектура в основном основана на архитектуре Mybatis и состоит из четырёх шагов:

  1. Первый шаг: SqlSessionFactory build = new SqlSessionFactoryBuilder().build("miniConfig.xml"); // Загрузка конфигурации.
  2. Второй шаг:
    SqlSession sqlSession = build.openSession(true); // Получение соединения.
  3. Третий шаг:
    UserMapper mapper = sqlSession.getMapper(UserMapper.class); // Получение информации о методе выполнения в виде прокси-объекта.
  4. Четвёртый шаг:
    Integer integer = mapper.deleteOne(82); // Выполнение метода и упаковка результатов.

Для получения более подробной информации о Mybatis можно обратиться к моей статье: Mybatis архитектура подробно.

Инструкция по установке

  1. Поместите папку com непосредственно в корневой каталог локального репозитория.
  2. В maven настройте следующим образом: напрямую импортируйте в файл pom.xml.
        <dependency>
            <groupId>com.lwl</groupId>
            <artifactId>Mini</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
  1. Импортируйте пакет jar-файл MySQL-соединения в pom.xml.

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

        SqlSessionFactory build = new SqlSessionFactoryBuilder().build("miniConfig.xml");
        SqlSession sqlSession = build.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = mapper.selectList();
        System.out.println("users = " + users);

1. SqlSessionFactory build = new SqlSessionFactoryBuilder().build("miniConfig.xml") Здесь обратите внимание: формат файла конфигурации следующий:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration[

        <!ELEMENT configuration (properties?,environment?,settings?,mappers?)>

        <!ELEMENT properties (property*)>
        <!ATTLIST properties
                resource CDATA #IMPLIED
                >

        <!ELEMENT property EMPTY>
        <!ATTLIST property
                name CDATA #REQUIRED
                value CDATA #REQUIRED
                >
        <!ELEMENT environment (dataSource)>
        <!ELEMENT dataSource (property*)>

        <!ELEMENT settings (setting*)>
        <!ELEMENT setting EMPTY>
        <!ATTLIST setting
                name CDATA #REQUIRED
                value CDATA #REQUIRED
                >
        <!ELEMENT mappers (package*)>
        <!ELEMENT package EMPTY>
        <!ATTLIST package
                name CDATA #REQUIRED
                >
        ]>
<configuration>
    <properties resource="db.properties">
    </properties>

    <settings>
        <setting name="userDruid" value="true"/>
        <setting name="cacheEnable" value="true"/>
        <setting name="loggedEnable" value="true"/>
    </settings>
    <!--<environment>
        <dataSource>
            <property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis01"/>
            <property name="jdbc.username" value="root"/>
            <property name="jdbc.password" value="root"/>
            <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
        </dataSource>
    </environment>-->
    <mappers>
        <package name="com.lwl.mini.mapper"/>
    </mappers>
</configuration>
  • В начале файла конфигурации должны быть добавлены ограничения, которые являются обязательными. Это стандарт языка XML.

  • Описание тегов:

  • properties:

    • Его можно загрузить двумя способами: первый — указать файл конфигурации ресурсов в атрибуте ресурса, второй — использовать тег property для загрузки внутри метки:

    • <properties>
            <property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis01"/>
            <property name="jdbc.username" value="root"/>
            <property name="jdbc.password" value="root"/>
            <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
      </properties>
  • environment:

    • Используется как показано в аннотации. *Примечание: здесь свойства и окружение могут существовать только по одному! Если они сосуществуют, будет сообщено об ошибке.
  • settings:

    • В настоящее время поддерживаются только три вида атрибутов дочерних меток:

        <setting name="userDruid" value="true"/>: фреймворк по умолчанию использует пул соединений Druid для управления соединениями. Если указано false, то используется JDBC и пул соединений не используется.
        <setting name="cacheEnable" value="true"/>: следует ли включать кэш. Здесь есть только один уровень кэша, который включён по умолчанию.
        <setting name="loggedEnable" value="true">: следует ли регистрировать выполнение SQL-оператора. По умолчанию включено.
  • mappers:

    • В метке пакета указывается путь пакета mapper, который автоматически зарегистрирует и загрузит класс mapper для регистрации и загрузки класса информации.
    • Ограничения Mapper:
      • В настоящее время список параметров метода должен использовать @param для указания ключа для замены #{key} в SQL-выражении.
      • Поддержка передачи параметров сущности временно не поддерживается.
      • Возвращаемое значение в настоящее время поддерживает только List, Integer, сущность и другие типы, но не map.
      • Пример использования:

    @Select("select * from user where id = #{testId} and username = #{name}")
    List<User> selectAll(@Param("testId") int id, @Param("name") String name); ```
@Select("select * from user where id = #{testId} and username = #{name}")
User selectOne(@Param("testId") int id, @Param("name") String name);

@Insert("insert into user values(#{id},#{name},#{birthday},#{sex},#{address})")
Integer insertOne(@Param("id") Integer id, @Парам("name") String name, @Param("birthday") Timestamp birthday, @Param("sex") String sex, @Param("address") String address);

@Delete("delete from user where id = #{id}")
Integer deleteOne(@Param("id") Integer id);

@Update("update user set username =#{name},birthday = #{birthday} where id =#{id}")
Integer updateOne(@Param("name") String name, @Param("birthday") Timestamp birthday, @Param("id") Integer id);

Использование справки и ограничения текущей версии

  1. Использование справки: Mini (https://blog.csdn.net/killbibi/article/details/124343375).
  2. В текущей версии передача параметров не позволяет передавать сущности для анализа, а возвращаемое значение поддерживает только типы сущностей и List. Кроме того, запросы SELECT не поддерживают отношения «один ко многим», ограничиваясь использованием аннотаций.

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

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

Введение

Мини<1.0> — полуавтоматический фреймворк для отображения данных. Проектная архитектура аналогична Mybatis. Основная часть кода в архитектуре написана самостоятельно. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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