MyBatis3 — это инструмент для автоматического создания кода. Он прост в использовании и подходит для работы с базой данных PostgreSQL на языке Java.
Преимущества инструмента:
Существует версия этого инструмента для MySQL. Подробнее см.: MyBatis3AutoCode.
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 '用户注释';
Обратите внимание: поля и таблицы должны содержать комментарии!
Файл конфигурации имеет следующий формат:
<?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>
Обратите внимание: каталоги должны существовать!
java -jar PgBatis3AutoCode.jar config.xml
Здесь PgBatis3AutoCode.jar — это сгенерированный jar-файл, а config.xml — путь к файлу конфигурации. 3. Метод 2: выполните следующую команду, чтобы сгенерировать код для одной таблицы:
java -jar PgBatis3AutoCode.jar config.xml TableName
Где TableName — имя таблицы без префикса.
<?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 )