Mybatis基本01

发布于:2023-01-04 ⋅ 阅读:(345) ⋅ 点赞:(0)

当使用Mybatis实现数据访问时,主要:

1,编写数据访问的抽象方法

2,配置抽象方法对应的SQL语句

关于抽象方法:

1.1  必须定义在某个接口中,这样的接口通常使用Mapper作为名称的后缀,例如AdminMapper

方法返回值类型:

1.2  如果要执行的数据是增,删,改类型的,同意使用int作为返回值类型,表示"受影响的行数",也可以使用void,但不推荐

1.3  如果要执行的是查询操作,返回值类型只需要能够装在所需的数据即可

1.4  方法的名称:自定义,不要重载,建议风格如下:

      --插入数据使用'insert' 作为方法名称中的前缀或关键字

     --删除数据使用'delete' 作为方法名称中的前缀或关键字

     --更新数据使用'update' 作为名称中的前缀或关键字

     -- 查询数据时:

       · 如果是统计, 使用'count' 作为方法名称中的前缀或关键字

       · 如果是单个数据,使用'get' 或者'find' 作为方法名称中的前缀或关键字

       · 如果是列表,使用'list' 作为方法名称中的前缀或关键字

       · 如果操作数据时有条件,可以在以上前缀或关键字右侧添加'by字段名'. 例如'deleteById'

1.5 方法的参数列表: 取决于需要执行的SQL 语句中有哪些参数,如果有多个参数,可将这些参数封装在同一个类型中,使用封装的类型作为方法的参数类型

封装:

封装后使用:

insert(增加)

1.SQL语句中的参数值使用#{}格式的占位符表示;

2. 自增Id 问题:

    通常表中看的id是自动编号的,则需要在获取新增的数据的id时,需要先使得插入的数据类型中有id对应的属性, 还是以Admin类中添加id属性为例:

还要在<insert> 节点配置2个属性,分别是useGeneratedKeys 和keyProperty:

 当配置完成后,Mybatis执行此插入数据的操作后,会将自动编号的id赋值到参数Admin admin 的id 属性中, 以上keyProperty值的就是将自动编号的值放回到参数对象的哪个属性中.

 

删除(delete)

删除一般比较简单,主要是根据某一个条件删除,不涉及映射:

update(修改)

在默认的情况下,当Java程序源代码(.java文件)经过编译后,所有局部变量的名称都会丢失,为使得配置SQL语句时可以根据指定的名称使用方法中的参数,需要在方法参数的各参数前添加@Param以指定名称:

    如果方法参数只有一个,则可不使用@Param指定名称,因为Mybatis可以直接找到此参数的值.

(关于@Param 更多对应关系,可以参考:parameterType 用法_香气袭人知骤暖的博客-CSDN博客_parametertype)

关于理解"经过编译后,所有局部变量的名称都会丢失"问题,简单示例,仅仅帮助大家理解, 图片可能会不对:

编译前:

编译后名字都不存在了:

 

 注意:增, 删, 改的返回值建议是int 类型, 当然也可以是void ,虽然不会报错,

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到