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

OSCHINA-MIRROR/godcheese-tile

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
DatabaseUtil.md 8.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 01:05 c364813

DatabaseUtil

> Генерация сущностных классов, MyBatis Mapper и XML файла MyBatis Mapper

  • Проект находится в директории D:\demo
  • Файл api_table.sql в директории D:\demo\tables
  • В настоящее время поддерживаются только базы данных MySQL, Oracle будет поддерживаться позднее

SQL файл: api_table.sql

DROP TABLE IF EXISTS `api`;
CREATE TABLE `api` (
	`id` BIGINT(20) UNSIGNED AUTO_INCREMENT COMMENT 'id',
	`name` VARCHAR(255) NOT NULL COMMENT 'Имя API',
	`uri` TEXT COMMENT 'Адрес запроса',
	`api_category_id` BIGINT(20) UNSIGNED NOT NULL COMMENT 'ID категории API',
	`sort` BIGINT(20) UNSIGNED DEFAULT 0 COMMENT 'Сортировка',
	`remark` VARCHAR(255) DEFAULT '' COMMENT 'Примечание',
	`authority` VARCHAR(255) NOT NULL COMMENT 'Права доступа (authority)',
	`gmt_create` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания',
	`gmt_modified` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Дата последнего изменения',
	PRIMARY KEY `pk_id` (`id`),
	UNIQUE KEY `uk_authority` (`authority`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci
AUTO_INCREMENT = 1
ROW_FORMAT = DYNAMIC
COMMENT = 'Таблица api';

Батч-генерация сущностных классов, MyBatis Mapper и XML файла MyBatis Mapper

// Батч-генерация сущностных классов, MyBatis Mapper и XML файла MyBatis Mapper
SqlGenerateProperties properties = new SqlGenerateProperties();
properties.setSqlFileSuffix("_table.sql");
properties.setMyBatisMapperPackage("com.gioov.demo.mapper");
properties.setEntityPackage("com.gioov.demo.entity");
properties.setSqlDirectory("D:\\tables");
properties.setEntityDirectory("D:\\demo\\src\\main\\java/com/gioov/demo/entity");
properties.setMyBatisMapperDirectory("D:\\demo\\src\\main\\java/com/gioov/demo/mapper");
properties.setMyBatisMapperXmlDirectory("D:\\demo\\src\\main\\java/com/gioov/demo/mapper");
DatabaseUtil.generateEntity(properties);
DatabaseUtil.generateMyBatisMapperXml(properties);
DatabaseUtil.generateMyBatisMapper(properties);
```#### Одиночная генерация сущностных классов, MyBatis Mapper и XML файла MyBatis Mapper

// Указание одиночного SQL файла для генерации соответствующих сущностных классов, MyBatis Mapper и XML файла MyBatis Mapper SqlGenerateProperties properties = new SqlGenerateProperties(); properties.setMyBatisMapperPackage("com.gioov.demo.mapper");

#### Генерируемый файл сущности: ApiEntity.java

```java
package com.gioov.demo.entity;
import java.io.Serializable;
import java.lang.Long;
import java.lang.String;
import java.util.Date;

/**
 * @author godcheese [godcheese@outlook.com]
 * @date 2018/4/23 15:58
 */
public class ApiEntity implements Serializable {
    /**
     * ID
     */
    private Long id;
    /**
     * Название API
     */
    private String name;
    /**
     * Адрес запроса
     */
    private String uri;
    /**
     * ID каталога API
     */
    private Long apiCategoryId;
    /**
     * Сортировка
     */
    private Long sort;
    /**
     * Примечание
     */
    private String remark;
    /**
     * Авторизация (authority)
     */
    private String authority;
    /**
     * Время создания
     */
    private Date gmtCreate;
    /**
     * Время последнего изменения
     */
    private Date gmtModified;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }

    public Long getApiCategoryId() {
        return apiCategoryId;
    }

    public void setApiCategoryId(Long apiCategoryId) {
        this.apiCategoryId = apiCategoryId;
    }

    public Long getSort() {
        return sort;
    }

    public void setSort(Long sort) {
        this.sort = sort;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    
    public String getAuthority() {
        return authority;
    }

    public void setAuthority(String authority) {
        this.authority = authority;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }
}
``````markdown
#### Сгенерированный файл маппера MyBatis: ApiMapper.java
```java
package com.gioov.demo.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.gioov.demo.entity.ApiEntity;
import java.lang.Long;
import java.util.List;

public class ApiMapper {

    public String getAuthority() {
        return authority;
    }
}
``````md
## Сгенерированный XML файл маппера MyBatis: ApiMapper.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gioov.demo.mapper.ApiMapper">
    <resultMap id="BaseResultMap" type="com.gioov.demo.entity.ApiEntity">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <!-- ID -->
        <result column="name" property="name" jdbcType="VARCHAR"/>
        <!-- API name -->
        <result column="uri" property="uri" jdbcType="LONGVARCHAR"/>
        <!-- request uri -->
        <result column="api_category_id" property="apiCategoryId" jdbcType="BIGINT"/>
        <!-- API category id -->
        <result column="sort" property="sort" jdbcType="BIGINT"/>
        <!-- sort -->
        <result column="remark" property="remark" jdbcType="VARCHAR"/>
        <!-- remark -->
        <result column="authority" property="authority" jdbcType="VARCHAR"/>
        <!-- authority (API:UUID) -->
        <result column="gmt_create" property="gmtCreate" jdbcType="DATE"/>
        <!-- create time -->
        <result column="gmt_modified" property="gmtModified" jdbcType="DATE"/>
        <!-- modify time -->
    </resultMap>
    <sql id="TableName">
        `api`
    </sql>
    <sql id="BaseColumnList">
        `id`, `name`, `uri`, `api_category_id`, `sort`, `remark`, `authority`, `gmt_create`, `gmt_modified`
    </sql>
</mapper>
### SQL запросы
```xml
<insert id="insertOne" useGeneratedKeys="true" keyProperty="id" parameterType="com.gioov.demo.entity.ApiEntity">
    INSERT INTO 
    <include refid="TableName"/> 
    (`id`, `name`, `uri`, `api_category_id`, `sort`, `remark`, `authority`, `gmt_create`, `gmt_modified`) 
    VALUES (#{id}, #{name}, #{uri}, #{apiCategoryId}, #{sort}, #{remark}, #{authority}, #{gmtCreate}, #{gmtModified})
</insert>
<update id="updateOne" keyProperty="id" parameterType="com.gioov.demo.entity.ApiEntity">
    UPDATE 
    <include refid="TableName"/> 
    SET `name` = #{name}, `uri` = #{uri}, `api_category_id` = #{apiCategoryId}, `sort` = #{sort}, `remark` = #{remark}, `authority` = #{authority}, `gmt_modified` = #{gmtModified} 
    WHERE `id` = #{id}
</update>
``````markdown
<update id="updateOne" parameterType="com.example.demo.entity.ApiEntity">
          ОБНОВИТЬ
          <include refid="TableName"/>
          УСТАНОВИТЬ `name` = #{name}, `uri` = #{uri}, `api_category_id` = #{apiCategoryId}, `sort` = #{sort}, `remark` = #{remark}, `authority` = #{authority}, `gmt_create` = #{gmtCreate}, `gmt_modified` = #{gmtModified}
          ГДЕ `id` = #{id}
      </update>
       <delete id="deleteOne" parameterType="long">
          УДАЛИТЬ ИЗ
          <include refid="TableName"/>
          ГДЕ `id` = #{id}
      </delete>
       <select id="getOne" resultMap="BaseResultMap">
          ВЫБРАТЬ
          <include refid="BaseColumnList"/>
          ИЗ <include refid="TableName"/> ГДЕ `id` = #{id}
      </select>
       <select id="listAll" resultMap="BaseResultMap">
          ВЫБРАТЬ
          <include refid="BaseColumnList"/>
          ИЗ <include refid="TableName"/>
      </select>
   </mapper>

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

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

1
https://api.gitlife.ru/oschina-mirror/godcheese-tile.git
git@api.gitlife.ru:oschina-mirror/godcheese-tile.git
oschina-mirror
godcheese-tile
godcheese-tile
master