mybatis注解开发
1.概述
Mybatis最大的特点是使用XML存储SQL语句,但是Mybatis也可以使用注解开发方式,好处是不用编写Mapper映射文件,坏处是SQL语句又耦合在Java代码中了。本次我们先围绕一些基本的 CRUD 来学习,再学习复杂映射关系及延迟加载。
2.Mybatis的注解说明
@Insert:实现新增
@Update:实现更新
@Delete:实现删除
@Select:实现查询
@Result:实现结果集封装
@Results:可以与@Result一起使用,封装多个结果集
@One:实现一对一结果集封装
@Many:实现一对多结果集封装
@SelectProvider: 实现动态SQL映射
3.使用注解方式开发UserMapper接口
package com.itheima.mybatis.mapper;
import com.itheima.mybatis.pojo.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface UserMapper {
@Select(value = "select * from user where id=#{id}")
User queryUserById(Integer id);
@Insert(value = "insert into user(username,sex,birthday,address) " +
"values (#{username},#{sex},#{birthday},#{address})")
void saveUser(User user);
@Update(value="update user set username=#{username} where id=#{id}")
void updateUsernameById(User user);
@Delete(value="delete from user where id=#{id}")
void deleteUserById(int id);
}
4.修改SqlMapConfig 配置文件
因为不存在UserMapper.xml文件了,这样我们就不需要在Mybatis配置文件中加载UserMapper.xml映射文件了。此时我们只需要Mybatis 的配置文件能够加载我们的UserMapper接口就可以了。
<mappers>
<package name="com.itheima.mybatis.mapper"/>
</mappers>
5.使用注解实现复杂关系映射开发
实现复杂关系映射之前我们可以在映射文件中通过配置来实现,但通过后我们发现并没有@ResultMap这个注解。下面我们一起来学习@Results注解,@Result注解,@One注解,@Many注解。