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.
This commit is contained in:
2026-05-31 13:22:03 +09:00
parent d5ac812703
commit 12c40c6004
25 changed files with 3305 additions and 1 deletions
@@ -0,0 +1,49 @@
<?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>