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

OSCHINA-MIRROR/tommygun-PgBatis3AutoCode

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

PgBatis3AutoCode

MyBatis3 — это инструмент для автоматического создания кода. Он прост в использовании и подходит для работы с базой данных PostgreSQL на языке Java.

Преимущества инструмента:

  • простая настройка;
  • генерация шаблонов кода: model, dao, dao.xml, service, service.impl, а также базового кода для операций изменения, удаления, добавления и постраничного поиска;
  • идеальное встраивание комментариев из исходного скрипта базы данных в код.

Существует версия этого инструмента для MySQL. Подробнее см.: MyBatis3AutoCode.

Как использовать

1. Создание скрипта базы данных

  • Файлы скриптов должны иметь расширение .sql;
  • Все файлы скриптов необходимо поместить в одну папку, не создавая подпапки;
  • Программа автоматически просматривает все файлы скриптов и генерирует код на основе скриптов создания таблиц. Скрипт создания таблицы должен соответствовать следующему формату:
CREATE TABLE "TB_Users"(
    "ID" integer NOT NULL,
    "UserName" character varying(50) COLLATE "default" NOT NULL,
    "UserLevel" smallint NOT NULL,
    "UserNotes" character varying(200) COLLATE "default" DEFAULT NULL::character varying,
    CONSTRAINT TB_Users_pkey PRIMARY KEY ("ID")
)
WITH (
    OIDS = FALSE
)
;

COMMENT ON TABLE "TB_Users" IS '用户表';

COMMENT ON COLUMN "TB_Users"."ID" IS '用户ID';
COMMENT ON COLUMN "TB_Users"."UserName" IS '用户姓名';
COMMENT ON COLUMN "TB_Users"."UserLevel" IS '用户级别';
COMMENT ON COLUMN "TB_Users"."UserNotes" IS '用户注释';

Обратите внимание: поля и таблицы должны содержать комментарии!

2. Создание файла конфигурации

Файл конфигурации имеет следующий формат:

<?xml version="1.0" encoding="UTF-8" ?>
<Config>
    <!-- 包名 -->
    <PackageName>com.bookool.demo</PackageName>
    <!-- 数据表前缀(可以为空) -->
    <TableNamePrefixion>TB_</TableNamePrefixion>
    <!-- 数据表脚本文件所在目录 -->
    <TableScriptDir ConType="dir">/root/demo/table</TableScriptDir>
    <!-- model目录 -->
    <ModelDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/model</ModelDir>
    <!-- dao目录 -->
    <DaoDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/dao</DaoDir>
    <!-- service目录 -->
    <ServiceDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/service</ServiceDir>
    <!-- service.implкаталог -->
    <ServiceImplDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/service/impl</ServiceImplDir>
</Config>

Обратите внимание: каталоги должны существовать!

3. Выполнение

  1. Создайте jar-файл;
  2. Метод 1: выполните следующую команду для генерации всего кода:
java -jar PgBatis3AutoCode.jar config.xml

Здесь PgBatis3AutoCode.jar — это сгенерированный jar-файл, а config.xml — путь к файлу конфигурации. 3. Метод 2: выполните следующую команду, чтобы сгенерировать код для одной таблицы:

java -jar PgBatis3AutoCode.jar config.xml TableName

Где TableName — имя таблицы без префикса.

Обратите внимание

  • Скрипты таблиц должны содержать комментарии для полей и таблиц.
  • Программа создаст файл журнала autocode.log.
  • Поддерживается только кодировка UTF-8.

Пример XML-файла в сгенерированном dao

<?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="cn.run2.TG.HelloWorld.dao.UsersMapper" >
    <resultMap id="BaseResultMap" type="com.bookool.demo.model.Users" >
        <!-- 用户ID -->
        <id column="ID" property="id" jdbcType="INTEGER" />
        <!-- 用户姓名 -->
        <result column="UserName" property="username" jdbcType="VARCHAR" />
        <!-- 用户级别 -->
        <result column="UserLevel" property="userlevel" jdbcType="TINYINT" />
        <!-- 用户注释 -->
        <result column="UserNotes" property="usernotes" jdbcType="VARCHAR" />
    </resultMap>

    <sql id="Base_Column_List" >
        ID, UserName, UserLevel, UserNotes
    </sql>

    <!-- 分页 -->
    <sql id="Page">
        <if test="Offset!=null and Rows!=null">
            LIMIT #{Offset,jdbcType=INTEGER}, #{Rows,jdbcType=INTEGER}
        </if>
    </sql>

    <!-- 基础模板 取得 Users 分页列表 -->
    <select id="baseselectListPage" resultMap="BaseResultMap" parameterType="java.util.Map" >
        SELECT
        <include refid="Base_Column_List" />
        FROM TB_Users
        <trim prefix="WHERE" prefixOverrides="AND|OR">
            <if test="id!=null">
                AND ID = #{id, jdbcType=INTEGER}
            </if>
            <if test="username!=null and username!=''">
                AND UserName LIKE CONCAT('%', #{username, jdbcType=VARCHAR}, '%')
            </if>
            <if test="userlevel!=null">
                AND UserLevel = #{userlevel, jdbcType=TINYINT}
            </if>
            <if test="usernotes!=null and usernotes!=''">
                AND UserNotes LIKE CONCAT('%', #{usernotes, jdbcType=VARCHAR}, '%')
            </if>
        </trim>
        <include refid="Page"></include>
    </select>

    <!-- 基础模板 取得一个 Users 对象 -->
    <select id="baseselectTopOneByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer"
``` ```
ВЫБЕРИТЕ 
    <include refid="Base_Column_List" />
ИЗ TB_Users
ГДЕ ID = #{id,jdbcType=INTEGER}
ЛИМИТ 0,1
<!-- Базовый шаблон удаления данных из Users -->

<delete id="basesdeleteByPrimaryKey" parameterType="java.lang.Integer" >
    УДАЛИТЬ ИЗ TB_Users
    ГДЕ ID = #{id,jdbcType=INTEGER}
</delete>
<!-- Базовый шаблон добавления полной записи Users -->

<insert id="baseinsert" parameterType="com.bookool.demo.model.Users" >
    ВСТАВИТЬ В TB_Users (
        ID, UserName, UserLevel, UserNotes)
    ЗНАЧЕНИЯ (
        #{id, jdbcType=INTEGER}, #{username, jdbcType=VARCHAR}, 
        #{userlevel, jdbcType=TINYINT}, #{usernotes, jdbcType=VARCHAR})
</insert>
<!-- Базовый шаблон добавления записи Users -->

<insert id="baseinsertSelective" parameterType="com.bookool.demo.model.Users" >
    INSERT INTO TB_Users
    <trim prefix="(" suffix=")" suffixOverrides="," >
        <if test="id!=null" >
            id,
        </if>
        <if test="username!=null" >
            username,
        </if>
        <if test="userlevel!=null" >
            userlevel,
        </if>
        <if test="usernotes!=null" >
            usernotes,
        </if>
    </trim>
    <trim prefix="VALUES (" suffix=")" suffixOverrides="," >
        <if test="id!=null" >
            #{id, jdbcType=INTEGER},
        </if>
        <if test="username!=null" >
            #{username, jdbcType=VARCHAR},
        </if>
        <if test="userlevel!=null" >
            #{userlevel, jdbcType=TINYINT},
        </if>
        <if test="usernotes!=null" >
            #{usernotes, jdbcType=VARCHAR},
        </if>
    </trim>
</insert>
<!-- Базовый шаблон обновления полной записи Users -->

<update id="baseupdate" parameterType="com.bookool.demo.model.Users" >
    ОБНОВИТЬ TB_Users
    <set>
        UserName = #{username,jdbcType=VARCHAR},
        UserLevel = #{userlevel,jdbcType=TINYINT},
        UserNotes = #{usernotes,jdbcType=VARCHAR},
    </set>
    ГДЕ
        ID = #{id,jdbcType=INTEGER}
</update>
<!-- Базовый шаблон обновления записи Users -->

<update id="baseupdateSelective" parameterType="com.bookool.demo.model.Users" >
    UPDATE TB_Users
    <set>
        <if test="username!=null" >
            UserName = #{username,jdbcType=VARCHAR},
        </if>
        <if test="userlevel!=null" >
            UserLevel = #{userlevel,jdbcType=TINYINT},
        </if>
        <if test="usernotes!=null" >
            UserNotes = #{usernotes,jdbcType=VARCHAR},
        </if>
    </set>
    WHERE
        ID = #{id,jdbcType=INTEGER}
</update>

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

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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