Springboot集成Mybaitis:注记方式编写SQL语句

接上一篇

上篇项目的基础上,可以直接在Mapper接口中通过注记的方式写SQL,无需再编写对应的XxxMapper.xml,可通过@Select,@Delete,@Update ,@Insert,@ResultMap,@Results,@Result等注解完成SQL编写。

其中UserMapper.java代码如下:

package com.me.mybaitis.mapper;

@Repository
public interface UserMapper {

    User getUserById(Integer id);

    /**
     *  新增注解方式
     * @Results各个属性的含义,id为当前结果集声明唯一标识,value值为结果集映射关系,
     * @Result代表一个字段的映射关系,column指定数据库字段的名称,property指定实体类属性的名称,jdbcType数据库字段类型,
     * @Result里的id值为true表明主键,默认false;
     * @Results注解必须与@Select查询同方法在一起,不可以单独定义@Results注解,会不被识别的。定义后,在其他方法处,便可以使用该@Results定义的resultMap了
     */
    @Select("select * from user where id = #{id}")
    @Results(
            id="UserResult",
            value = {
                    @Result(column = "id",property = "id",id = true),
                    @Result(column = "name",property = "name",jdbcType = JdbcType.VARCHAR,javaType = String.class),
                    @Result(column = "age",property = "age",jdbcType = JdbcType.INTEGER,javaType = Integer.class),
                    @Result(column = "email",property = "email",jdbcType = JdbcType.VARCHAR,javaType = String.class),
                    @Result(column = "create_time",property = "createTime",jdbcType = JdbcType.DATE,javaType = Date.class),
                    @Result(column = "update_time",property = "updateTime",jdbcType = JdbcType.DATE,javaType = Date.class),
            }
    )
    User selectUserById(Integer id);

    /**
     * 使用@ResultMap来引用映射结果集,其中value可省略。上面定义的ResultMap可复用
     */
    @Select("select * from user where name = #{name}")
    @ResultMap(value = "UserResult")
    List<User> getUserByName(String name);

}

UserSevice同步修改:

package com.me.mybaitis.service;

@Service
public class UserService {

    @Autowired
    UserMapper userMapper;

    public User getUserById(Integer id) {
        return userMapper.getUserById(id);
    }

    public User selectUserById(Integer id) {
        return userMapper.selectUserById(id);
    }

    public List<User> getUserByName(String name) {
        return userMapper.getUserByName(name);
    }
}

UserController:

package com.me.mybaitis.controller;

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/getuser/{id}")
    public String getUser(@PathVariable Integer id) {
        String s = userService.getUserById(id).toString();
        return s;
    }

    @GetMapping("/seluser/{id}")
    public String selectUser(@PathVariable Integer id) {
        return userService.selectUserById(id).toString();
    }

    @GetMapping(value = "/getuserbyname/{name}")
    public List<User> getUsersByName(@PathVariable String name) {
        List<User> userList = userService.getUserByName(name);
        userList.forEach(System.out::println);
        return userList;
    }

}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值