第一个EE框架MyBatis05

第一个EE框架MyBatis05

注解开发

  • 注解的使用风格:@xxx(属性),使用前必须先导包
  • 使用注解一般用于简化配置文件。但是,注解有时候也不是很友好(甚至会使程序更麻烦)
  • 注解的属性
    • 属性的设定方式是:属性名=属性值
  • 关于属性值的类型
    • 基本类型和String,可以直接使用双引号形式
    • 数组类型,name={值1,值2...};如果数组元素自由一个可一省略大括号
    • 对象类型,name=@对象名(属性)
    • 如果属性是该注解的默认值,而且该注解值配置这一个属性,可以将属性名省略

MyBatis中常用的注解(实现基本的增删查改)

1. select注解:实现查询

使用
在mapper层建立接口,在接口中声明查询的方法,这是基本的步骤,但是接下来不需要创建配置文件,只需要声明一个注解即可

@Select(value={"select * from t_student"})
List<Student> selAll();

接下来在其他的任何地方都可以使用session工厂来获取mapper然后调用该方法了
简化:根据上面写的注解开发条例,如果数组元素只有一个元素,那么大括号可以省略,如果注解属性只有一个,可以将其省略,即可以简化为

@Select("select * from t_student")
List<Student> selAll();

2. insert:实现插入

@Insert("insert into t_student values (default, #{name},#{age},#{gender},#{cid})")
int insStu(Student student);

注意绑定数据使用#{}和之前一样,但是注意如果传入的值不是对象类型的,那么则不可以使用值的名字访问而是使用#{0...}访问或者使用@param注解配置别名访问

3. update:实现修改

代码大同小异不在赘述

4. delete:实现删除

注解实现多表链接查询

先上代码

    @Select("select * from t_student")
    @Results(value = {
            @Result(property = "id", column = "id", id = true),
            @Result(property = "name", column = "name"),
            @Result(property = "age", column = "age"),
            @Result(property = "gender", column = "gender"),
            @Result(property = "cid", column = "cid"),
            @Result(property = "clazz", one = @One(select = "top.byfree.mapper.Mapper.selById"), column = "cid")
    })
    List<Student> selAll();

    @Select("select * from t_class where id=#{0}")
    Clazz selById(int id);

注意,列名和属性名对应的时候如果不是使用多次可以省略不写,和配置文件一致

注解名属性功能
Resultsvalue,值是个数组用于写入result标签相当于配置文件中的resultMap
Resultproperty column..下附表细述相当于配置文件中的id和result
Oneselect,用于关联查询相当于配置文件的association标签
manyselect,用于关联查询封装成集合相当于配置文件中的collection

Result标签的属性

属性功能
property声明属性的名称
column表的字段名称
one值是One类型的注解,用于关联查询
many值是Many类型的注解,用于封装关联的查询为集合

3/4/2020 16:36
不知不觉MyBatis完结了!春天要来了啊,奖励自己今天剩下的时间休息吧!.
肝一肝fgo打打炉石,今天炉石新版本冒险开了,fgo白情活动银材料本今天开,期待
明天开始学习spring,冲鸭

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.byfree.top/archives/myabtis05