Mybatis 教程之Mybatis注解开发

mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到了 MyBatis 3提供了新的基于注解的配置。

这里讲述 注解开发方式:

首先我们需要获取 SqlSession :

参数设置为 true 表示开启自动提交模式。

session 在注解形式的使用方式如:

所以mybatis 的使用使用三部分:

这里主要讲解 Mapper 层的开发规则。

sql 类型主要分成 : select @Select(${sql}) , update @Update(${sql}) , insert @Insert($sql) , delete (${sql}) .

@Results 用来设置table信息与bean相关字段的映射关系, 每一个字段的关系使用 @Result 控制。

默认情况下对于每一table字段,例如 name , 会调用 bean 中的 setName(..) . 如果找不到,对于新版本的 mybatis 会报错。
例如上面的 cluster_name 会调用 setCluster_name() . 但是java 中使用的 clusterName ,可以通过 Result 注解控制.

@ResultMap 可以通过Id,应用其他的 Results

还有一种更改映射的方式:

mapUnderscoreToCamelCase 设置为true, 之后会自动实现 mysql 中的unix命名方式转为java的驼峰表示法。

@MapKey 此注解应用将查询数据转为 Map<>, 注意的是MapKey()中的id最终调用bean的getId 获取数据,所以需要映射bean字段而不是table.

@Param注解用于给方法参数起一个名字。以下是笔者总结的使用原则:
在方法只接受一个参数的情况下,可以不使用@Param。
在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。

insert 时获取自增主键的方式:

法一:

法二:

#{} 的作用主要是替换预编译语句(PrepareStatement)中的占位符 ? :

对于 : INSERT INTO user (name) VALUES (#{name}); ==> INSERT INTO user (name) VALUES (?);

${} 符号的作用是直接进行字符串替换:

对于 : INSERT INTO user (name) VALUES ('${name}'); ==> INSERT INTO user (name) VALUES ('tianshozhi');



扩展阅读:www.sony.com.cn ... messenger lite free ... play store download ... messenger lite apps ... messenger app download ... mybatis github ... download messenger lite ... mybatisplus mapper ... mybatis selectkey ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网