MyBatis中的常用注解

在MyBatis中,一些SQL语句例如(select * from 表名;delete from 表名)等等,这些SQL语句比较简单,没有那些复杂的关联关系,但是在不用注解的情况下,要执行这些方法的话就要从DAO层,Mapper映射文件两个方面进行实现,这些步骤在我们MyBatis中可以使用注解进行简化;接下来就介绍我们常用的增删改查标签

@Insert

@Update

@Delete

@Select

上面的这些注解中的每一个代表了执行的真实SQL。它们每一个都使用字符串数组(或单独的字符串)。如果传递的是字符串数组,它们由每个分隔它们的单独空间串联起来。

这几个注解的使用方法都是一样的,把注解声明在DAO层的方法上面

PS(这些注解都是MyBatis提供的,只需要引入MyBatis的依赖)

依赖

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>

先创建一个接口,并在接口里面声明一个方法

public interface ITestDao {
    //获取所有的用户
    @Select(" SELECT * FROM smbms_user")
     List<User> getUser();
}

这种情况可以不使用Mapper映射文件,但是需要在MyBatis的核心配置文件中引入相应的接口文件(我的接口在com.yjc.dao包下),这个操作代表扫描该包下的所有文件

    <mappers>
        <package name="com.yjc.dao"/>
    </mappers>

接下来直接测试

public class Test1 {
    public static void main(String[] args) {
        SqlSession session = SqlSessionUtils.getSession();
        ITestDao mapper = session.getMapper(ITestDao.class);
        List<User> user = mapper.getUser();
        for (User user1: user ) {
            System.out.println(user1);
        }
    }
}

输出结果如下,

 查出了所有的用户信息,

注解里面一般写的都是单表的简单查询,需要进行关联查询的时候,还是需要将SQL的写在Mapper映射文件

当然MyBatis也给我们提供了进行关系映射相应的注解

@Results

在列和属性或字段之间的单独结果映 射。属 性 :id,column, property, javaType ,jdbcType ,type Handler, one,many。id 属性是一个布尔值,表 示了应 该被用于比较(和在 XML 映射 中的<id>相 似)的属性。one 属性是单 独 的 联 系, 和 <association> 相 似 , 而 many 属 性 是 对 集 合 而 言 的 , 和 <collection>相 似。 它们这样命名是为了 避免名称冲突

|//注解方式配置resultMap手动映射
@Results(id = "userMap" ,value = {
@Result(id = true, column = "id", property = "id"),
@Result(column = "userName" ,property = "user")
)
//使用注解可以不用小配置文件 但是
在实际开发必须有小配置
@Select("select * from smbms_ user where userName like concat('%',#{name},'%') and gender=#{gender}" )
public List<SmbmsUser> getUserByNameAndGender(@Param( "name") String name, @Param( ”gender") Integer gender); 

@Result注解默认只对他下面的第一个方法才能生效,可以使用@ResultMap来进行手动引入

@ResultMap( "userMap")_ Resul ts的ID值
@Select("select * from smbms_ user")
public List<SmbmsUser> getAllUser();

猜你喜欢

转载自www.cnblogs.com/yjc1605961523/p/11725925.html
今日推荐