如何简单使用mybatis注解

 更新时间:2021年06月03日 10:29:16   作者:时年君  
之前我们介绍了使用JDBC或者java框架mabatis来实现对数据库的操作,现在为了简化代码,提高程序的简洁性,我们探索如何使用注解进行开发,需要的朋友可以参考下

使用注解开发

本质:反射机制实现
底层:动态代理

1、注解在接口上的实现

public interface UserMapper {
    @Select("select * from user")
    List<User> getUsers();
}

2、使用注解时,需要在核心配置文件中绑定接口

 <mappers>
        <mapper class="com.xiao.dao.UserMapper"/>
    </mappers>

3、测试使用

public class UserMapperTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //底层主要靠反射实现
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = mapper.getUsers();
        for (User user : users) {
            System.out.println(user);
        }

        sqlSession.close();
    }
}

使用注解完成CRUD

只需修改接口和测试类即可。

之前在使用XML的方式进行CRUD操作时,增(insert)、改(update)、删(delete)时,都需要手动进行事务提交操作sqlsession.commit()

查看openSession()的源码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自动提交

在这里插入图片描述

查(select)

接口

  @Select("select * from user where id = #{id}")
    User getUserByID(@Param("id") int id);

测试类

public class UserMapperTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //底层主要靠反射实现
       UserMapper mapper = sqlSession.getMapper(UserMapper.class);
       User userByID = mapper.getUserByID(1);
       System.out.println(userByID);
       
       sqlSession.close();
        
    }
}

增(insert)

接口

 @Insert("insert into user(id,name,pwd) value (#{id},#{name},#{password})")
    int addUser(User user);

实现类

public class UserMapperTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //底层主要靠反射实现
       UserMapper mapper = sqlSession.getMapper(UserMapper.class);
       mapper.addUser(new User(5,"张飞","1456156"));


        sqlSession.close();
    }
}

改(update)

接口

   @Update("update user set name = #{name},pwd=#{password} where id = #{id}")
    int updateUser(User user);

测试类

public class UserMapperTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //底层主要靠反射实现
       UserMapper mapper = sqlSession.getMapper(UserMapper.class);
       mapper.updateUser(new User(5,"赵云","565423"));
       sqlSession.close();
    }
}

删(delete)

接口

@Delete("delete from user where id = #{id}")
    int deleteUser(int id);

测试类

public class UserMapperTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //底层主要靠反射实现
       UserMapper mapper = sqlSession.getMapper(UserMapper.class);
       mapper.deleteUser(5);
       sqlSession.close();
    }
}

到此这篇关于如何简单使用mybatis注解的文章就介绍到这了,更多相关mybatis注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中ArrayList初始化的四种方法详解

    Java中ArrayList初始化的四种方法详解

    这篇文章主要介绍了Java中ArrayList初始化的四种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Lambda表达式和Java集合框架

    Lambda表达式和Java集合框架

    本文主要介绍了Lambda表达式和Java集合框架的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 关于swagger配置及踩坑@Api参数postion无效解决接口排序问题

    关于swagger配置及踩坑@Api参数postion无效解决接口排序问题

    这篇文章主要介绍了关于swagger配置及踩坑@Api参数postion无效解决接口排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • RestTemplate发送HTTP POST请求使用方法详解

    RestTemplate发送HTTP POST请求使用方法详解

    这篇文章主要为大家介绍了RestTemplate发送HTTP POST请求的使用方法详解,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Lombok中@EqualsAndHashCode注解的使用及说明

    Lombok中@EqualsAndHashCode注解的使用及说明

    这篇文章主要介绍了Lombok中@EqualsAndHashCode注解的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • SpringBoot3集成ElasticSearch的方法详解

    SpringBoot3集成ElasticSearch的方法详解

    Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,适用于各种数据类型,数字、文本、地理位置、结构化数据、非结构化数据,本文给大家详解介绍了SpringBoot3集成ElasticSearch的方法,需要的朋友可以参考下
    2023-08-08
  • Java:详解Java中的异常

    Java:详解Java中的异常

    这篇文章主要介绍了java中的异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • 浅谈Java中复制数组的方式

    浅谈Java中复制数组的方式

    这篇文章主要介绍了Java中复制数组的几种方法,需要的朋友可以参考下。
    2017-08-08
  • Spring你不知道的一种解耦模式

    Spring你不知道的一种解耦模式

    本文介绍一种方法,服务定位模式Service Locator Pattern来解决,它帮助我们消除紧耦合实现及其依赖性,并提出将服务与其具体类解耦
    2023-01-01
  • SpringBoot集成ShardingSphere实现数据库分表

    SpringBoot集成ShardingSphere实现数据库分表

    ShardingSphere 是一个开源的分布式数据库中间件,旨在为应用提供数据库分片、读写分离、分布式事务等功能,下面我们来看看SpringBoot如何集成ShardingSphere实现数据库分表吧
    2024-12-12

最新评论