MyBatis 本是apache的一个开源项目iBatis,MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。 Mybatis是目前最常用的框架之一,因为比起jpa,他更加灵活,可以很容易的实现复杂sql的操作,入门使用大家可以去看一些教程视频,这里不做讲解,这里介绍一些常用的标签,目前最常用的标签有,,分别对应增删查改四个操作,也是完成项目crud的基础操作,不过除了外层大的标签,还会有子标签,亦或者是标签属性要配置,因为很多时候我们需要做一对多,多对多的操作等,拿最常用的的标签属性来看:
虽然比较多,但实际上常用的只有前四个,这里介绍下常用的四个属性,其他的属性大家可以看下文档介绍自己尝试。
id:在命名空间唯一的标识,可以被用来引用这条语句(实际使用时保证id的值与mapper.java 中方法名一致)
parameterType:不是必须的,如果没有入参就不需要,如果有入参就用来表示传入的参数类型,可以是Integer,String等java的数据类型,也可以是自定义的Person,User等数据类型,还可以是List,Map集合等
resultType:这个和parameterType相对,这个表示返回的数据类型,同样不是必须的,也同样可以是Integer,String,还可以是自定义类型Person,User或者是List和Map集合,
resultMap:这个就比较独特了,一般在自定义映射的时候会用到,与<resultMap>标签合用,如果你返回的数据不是Integer,也不是自定义的Person,也不是List集合,这里就可以使用<resultMap>自定义返回的类型,并将resultMap的值设置为<resultMap>标签的id,(此属性不能和resultType同时存在)
这里展示一个根据id查询数据的例子,传入的参数用parameterType="Long",表示传入参数的类型,resultMap="RcsCurrentTaskDetailResult"表示返回的数据类型,
要注意的是上面的返回数据类型需要将java中类属性映射到数据库的表字段中,如图
这样就能将有区别的类属性和表字段一一对应起来。
好了,select标签的用法基本就这些,下节讲select标签下的多种情况的入参,包括集合,Map等