渐渐模糊了约定 2024-03-22 15:49 采纳率: 10.5%
浏览 3

springboot sql查询接口

UserMapper:

img

img

想要携带参数到数据库查询,这样不对吗,我查了都是这样写的啊

img

  • 写回答

3条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-22 15:50
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这样写是可以的,但建议使用注解的方式来注入参数,使代码更加简洁明了。 例如:在接口方法上加入@Param注解,然后在方法中直接使用注解里的参数名即可,如下所示:
    public interface UserMapper {
        List<User> getUserByName(@Param("name") String name);
    }
    

    这里使用了@Param注解来注入参数名称,然后在方法中直接使用该名称即可。 另外,在使用注解时,Mybatis会自动将参数值赋给对应名称的参数,无需手动赋值。 例如:

    List<User> userList = userMapper.getUserByName("Tom");
    

    这里传入的参数值是"Tom",Mybatis会自动将该值赋给@Param注解里指定的参数"name"。 完整的例子如下: UserMapper.java文件:

    import java.util.List;
    import org.apache.ibatis.annotations.Param;
    public interface UserMapper {
        List<User> getUserByName(@Param("name") String name);
    }
    

    User.java文件:

    public class User {
        private String id;
        private String name;
        private int age;
        // 省略Getter和Setter方法
    }
    

    userMapper.xml文件:

    <select id="getUserByName" resultType="User">
        select * from user where name=#{name}
    </select>
    

    测试类Test.java文件:

    public class Test {
        public static void main(String[] args) {
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> userList = mapper.getUserByName("Tom");
            System.out.println(userList);
            sqlSession.close();
        }
    }
    

    输出结果:

    [User{id='1001', name='Tom', age=20}, User{id='1004', name='Tom', age=22}]
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月22日

悬赏问题

  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开