package com.example.user;import io.github.lynxus.annotation.*;@Mapperpublic interface UserMapper { @Select("SELECT id, name FROM users WHERE id = #{userIdid}") User findById(@Param("id") Long id); @Insert(""" INSERT INTO users (id, name) VALUES (#{id}, #{name})""") int insert(@Param("id") Long id, @Param("name") String name);}final class UserMapperImpl implements UserMapper { private final SqlExecutor executor; UserMapperImpl(SqlExecutor executor) { this.executor = executor; } @Override public User findById(Long id) { return executor.query(FIND_BY_ID.bind(id)).oneOrNull(); } private static final QueryDefinition<User> FIND_BY_ID = QueryDefinition.assembled( "UserMapper#findById", SQL, ROW_MAPPER);}