mybatis学习入门(二)

本章介绍一下mybatis学习入门之后一些细节操作

一:parameterType输入参数和resultType输出参数的使用

1 搭建mybatis环境,在上一章已经提到了 2 在接口创建一个方法,参数是一个integer 3 编写映射文件,输入参数 int/integer都可以

4 输出参数,为返回值的类型

注意事项:parameterType可以不写,resultType一定要写(void的话可以不写)

二:sql语句占位符

占位符不能直接用问号,而是用#{xxx},这个xxx就要看接口方法参数而定.

1 如果参数是只有一个的情况下:

    如果参数是简单类型:那么xxx的值可以是任意

    如果参数是对象类型,那么xxx需要写对象的属性名保持一致

2 如果参数大于一个的情况下:

   在第三章再谈 

三:插入操作获取主键值

应用场景:当你插入的时候,可能会插入两个表的时候,这时候次表的的外键可能是主表的主键,那么这时候插入主表的数据的时候,可以获取到主表的主键,然后再作为参数插入到次表的外键

通过<selectKey>标签获取到主键,结果会返回到参数对象中

注意事项:<selectKey>的order属性,如果是选择after的话就是说明插入之后获取主键值

四:多条件查询

我们在开发中,可能会遇到一些多条件查询的条件,那么多个多条件的话,应该怎么做呢?这里可以通过自定义一个对象,专门就是封装条件属性,这样就能解决了.

注意事项1,如果这个条件对象的属性也是一个对象xxx,占位符为xxx.xxxx 其中xxxx是xxx对象的属性名

注意事项2,对于大于小于,处于xml的语法问题,需要给<![CDATA[内容]]>包括起来.不然就会出现问题

五:模糊查询

对于模糊查询,相信小伙伴都知道需要给占位符加上%%,方法一:在sql编写的时候直接写上xxxxxx like '%${value}%'

上面的这种使用方法不安全,容易sql注入

所以我们用的是方法二:在参数上面加上%%,不过这样的话,就很不方便,最佳的做法就是 xxxxx like concat ('%',xxx,'%')

这样的话我们只需要关注参数就行了

六:当列名和对象的属性名不一致的时候

我们开发中,经常就会自定义列名查询.这时候就会javabean中的属性名出现不一致的情况了,那么这时候应该怎么办呢?

没错,这时候就用resultMap去映射列名,原理就是和返回来的结果集的列名和javabean映射一下而已

猜你喜欢

转载自blog.csdn.net/weixin_41796356/article/details/90045664