Files
koreafood 12c40c6004 feat(board-generator): add board code generator and sample CRUD artifacts
Add Node.js CLI tool with Handlebars templates for generating standard CRUD artifacts: Java entity, service, DAO, controller, MyBatis mapper XML, and Vue frontend pages.
Also generate the full SampleTableBoard CRUD reference implementation, update README with backend execution instructions, and add project plan documentation.
2026-05-31 13:22:03 +09:00

50 lines
2.0 KiB
Handlebars

<?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="{{mapperNamespace}}">
<resultMap id="{{entityVarName}}ResultMap" type="{{entityFqcn}}">
{{#each columns}}
{{#if primaryKey}}<id property="{{propertyName}}" column="{{columnName}}"/>{{else}}<result property="{{propertyName}}" column="{{columnName}}"/>{{/if}}
{{/each}}
</resultMap>
<select id="select{{entityName}}List" resultMap="{{entityVarName}}ResultMap">
SELECT {{#each columns}}{{columnName}}{{#unless @last}}, {{/unless}}{{/each}}
FROM {{metadata.schema}}.{{tableName}}
ORDER BY {{primaryKeyColumn.columnName}} DESC
</select>
<select id="select{{entityName}}" parameterType="{{primaryKeyMyBatisType}}" resultMap="{{entityVarName}}ResultMap">
SELECT {{#each columns}}{{columnName}}{{#unless @last}}, {{/unless}}{{/each}}
FROM {{metadata.schema}}.{{tableName}}
WHERE {{primaryKeyColumn.columnName}} = #{{'{'}}{{primaryKeyProperty}}{{'}'}}
</select>
<insert id="insert{{entityName}}" parameterType="{{entityFqcn}}"{{#if primaryKeyColumn.autoIncrement}} useGeneratedKeys="true" keyProperty="{{primaryKeyProperty}}"{{/if}}>
INSERT INTO {{metadata.schema}}.{{tableName}} (
{{#each insertColumns}}
{{columnName}}{{#unless @last}},{{/unless}}
{{/each}}
)
VALUES (
{{#each insertColumns}}
#{{'{'}}{{propertyName}}{{'}'}}{{#unless @last}},{{/unless}}
{{/each}}
)
</insert>
<update id="update{{entityName}}" parameterType="{{entityFqcn}}">
UPDATE {{metadata.schema}}.{{tableName}}
SET
{{#each updateColumns}}
{{columnName}} = #{{'{'}}{{propertyName}}{{'}'}}{{#unless @last}},{{/unless}}
{{/each}}
WHERE {{primaryKeyColumn.columnName}} = #{{'{'}}{{primaryKeyProperty}}{{'}'}}
</update>
<delete id="delete{{entityName}}" parameterType="{{primaryKeyMyBatisType}}">
DELETE FROM {{metadata.schema}}.{{tableName}}
WHERE {{primaryKeyColumn.columnName}} = #{{'{'}}{{primaryKeyProperty}}{{'}'}}
</delete>
</mapper>