mybatis-注解方式

这篇博客介绍了如何在MyBatis中使用注解进行单表查询、一对一、一对多和多对多的查询操作。通过注解配置,简化了配置文件,并详细解析了主要注解的用法,如@Results、@Result和@One等。文中还包含了各个查询场景的接口定义和测试案例,展示了如何在实际应用中使用这些注解。
摘要由CSDN通过智能技术生成

结合mybatis-配置文件方式,搞懂注解方式。

1 主要注解

注解 标签 说明
@Insert insert 添加操作
@Update update 更新操作
@Delete delete 删除操作
@Select select 查询操作
@Result result 结果集中表字段与类属性映射
@Results resultMap 封装结果集,与@Result一起使用,@Results({@Result(),@Result()})或@Results(@Result())
@One association 一个结果,@Result属性one的赋值,@Result(one=@One(select=“查询方法的全路径”))
@Many collection 多个结果,@Result属性many的赋值@Result(many=@Many(select=“查询方法的全路径”))

2 单表查询

2.1 配置文件

主配置文件mybatis.xml,加载含注解文件的配置:

<!--加载映射文件-->
<mappers>
     <!--加载UserMapper类-->
     <mapper class="com.test.mapper.UserMapper"/>
</mappers>

2.2 接口类

接口类代替mapper.xml文件:

public interface UserMapper {
   
    @Select("select * from tb_user")
    @Results({
   @Result(column = "id",property = "id"),
              @Result(column = "user_name",property = "userName"),
              @Result(column = "make_time",property = "makeTime"),
              @Result(column = "update_time",property = "updateTime")})
    List<User> findAll();
}

2.3 测试

执行方法前获取接口,执行后关闭sqlsession:

//通过代理方式获取接口
public class UserTest {
   

    private UserMapper userMapper;
    private SqlSession sqlSession;

     @Before
    public void before() throws IOException {
   
        //从类路径下、文件系统或url加载资源文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //openSession()默认开启事务,需要手动提交事务
        //openSession(boolean autoCommit)参数为true,则自动提交事务,否则需要手动提交
        //SqlSession中有所有执行sql语句、提交或回滚事务和获取映射器实例的方法
        sqlSession = sqlSessionFactory.openSession(true);
        //jdk动态代理方式获得UserDao接口的实现类对象(目标对象)
        userMapper = sqlSession.getMapper(UserMapper.class);
    }
    
    @After
    public void after(){
   
        sqlSession.close();
    }
    @Test
    public void testFindAll() throws IOException {
   

        List<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值