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

OSCHINA-MIRROR/tommygun-MyBatis3AutoCode

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

MyBatis3AutoCode (для MySQL)

MyBatis3 — это инструмент для автоматического создания кода, простой и удобный в использовании, предназначенный для работы с Java и MySQL. Преимущества:

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

Существует также версия проекта для PostgreSQL — PgBatis3AutoCode, подробности доступны по ссылке: PgBatis3AutoCode.

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

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

  • Файлы скриптов должны иметь расширение .sql;
  • Все файлы скриптов необходимо разместить в одной папке, не создавая подпапки;
  • Программа автоматически просматривает все файлы скриптов и генерирует код на основе скриптов создания таблиц. Скрипт создания таблицы должен соответствовать следующему формату:
CREATE TABLE `TB_Users` (
  `ID` int(11) NOT NULL COMMENT '用户ID',
  `UserName` varchar(50) NOT NULL COMMENT '用户姓名',
  `UserLevel` tinyint(4) NOT NULL COMMENT '用户级别',
  `UserNotes` varchar(200) DEFAULT NULL COMMENT '用户注释',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

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

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 MyBatis3AutoCode.jar config.xml

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

java -jar MyBatis3AutoCode.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" >
        SELECT
        <include refid="Base_Column_List" />
        FROM TB_Users
        WHERE ID = #{id,jdbcType=INTEGER}
        LIMIT 0,1
    </select>

    <!-- 基础模板 удаление Users данных -->
    <delete id="basesdeleteByPrimaryKey"
``` **ПараметрТип="java.lang.Integer" >**

    DELETE FROM TB_Users
    WHERE ID = #{id,jdbcType=INTEGER}

**<!-- Базовый шаблон: удаление полной записи из таблицы Users -->**

    <delete>

        DELETE FROM TB_Users
        WHERE ID = #{id, jdbcType=INTEGER}

    </delete>

**<!-- 基础模板: добавление одной полной записи в таблицу Users -->**

    <insert id="baseinsert" parameterType="cn.run2.TG.HelloWorld.model.Users" >

        INSERT INTO TB_Users (
            ID, UserName, UserLevel, UserNotes)
        VALUES (
            #{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 (
            ID, UserName, UserLevel, UserNotes)
        VALUES (
            #{id, jdbcType=INTEGER}, #{username, jdbcType=VARCHAR}, 
            #{userlevel, jdbcType=TINYINT}, #{usernotes, jdbcType=VARCHAR})

    </insert>

**<!-- 基础模板: обновление полной записи в таблице Users -->**

    <update id="baseupdate" parameterType="com.bookool.demo.model.Users" >

        UPDATE TB_Users SET
            UserName = #{username,jdbcType=VARCHAR},
            UserLevel = #{userlevel,jdbcType=TINYINT},
            UserNotes = #{usernotes,jdbcType=VARCHAR}
        WHERE
            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>
        WHERE
            ID = #{id,jdbcType=INTEGER}

    </update>

</mapper>

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

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

Введение

Инструмент для автоматической генерации кода MyBatis3, простой и удобный, Java, для MySQL. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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