java 将查询到的值 存下_MyBatis3.x 从入门到精通(六)查询

概述:
在前面的章节中,对查询已经有过接触,先做一下概述:接触过的查询有3种。第1种:根据id查询(传入1个参数);第2种:多条件查询(传入多个参数);第3种查询:多条件查询(传入1个对象)。这里是在前面的基础上,做扩展介绍。
这里先以selectById方法为例,拿出之前的配置文件:
id,name,sex,mobile,birthday,address,employee_nickname
上面的配置文件中有个
上面的配置查看 selectById 这个方法(即 ),在select标签中省写了一个 parameterType 它的作用是在接收入参时,指明参数的类型。比如selectById 是根据id查询数据,id类型,在接口中方法的参数上已经定义了Long类型。
EmployeeMapper接口方法如下:
Employee selectById(@Param("id") Long id);EmployeeMapper.xml 文件较完整写法:
上述配置调整后,运行测试方法,程序正常执行,输出结果如下:

注意:
parameterType参数类型
- 可以是基本类型
parameterType="java.lang.Long" 或使用别名 parameterType="Long"
parameterType="java.lang.Integer" 或使用别名 parameterType="Integer"- 也可以是java集合List或Map类型
parameterType="java.lang.Map" 或使用别名 parameterType="Map"
parameterType="java.lang.List" 或使用别名 parameterType="List"- 还可以是java自定义的对象
parameterType="com.xbjct.domain.Employee" 或使用别名 parameterType="Employee"上述配置文件,在进行取参时,代码如下:
where id = #{id}可对其进行调整,指明取餐类型,调整后代码如下:
where id = #{id, jdbcType = BIGINT}注意:
一般情况下不加也是可以正常使用的,若出现报错:无效的列类型时,则是缺少jdbcType。
在查询时,一般不会查询为null值,若需要查询字段为null,则需要jdbcType属性。
JDBC Type Java Type
CHAR String
VARCHAR String
LONGVARCHAR String
NUMERIC java.math.BigDecimal
DECIMAL java.math.BigDecimal
BIT boolean
BOOLEAN boolean
TINYINT byte
SMALLINT short
INTEGER INTEGER
INTEGER int
BIGINT long
REAL float
FLOAT double
DOUBLE double
BINARY byte[]
VARBINARY byte[]
LONGVARBINARY byte[]
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
CLOB Clob
BLOB Blob
ARRAY Array
DISTINCT mapping of underlying type
STRUCT Struct
REF Ref
DATALINK java.net.URLparameterType参数类型为对象时
这里需要修改mapper.EmployeeMapper.xml文件,找到selectByDto的方法,给select标签加入parameterType属性,如下:
运行测试方法,程序正常执行,输出结果如下:

注意:
如果查询条件:id、name、address其中一个为空时,是检索不到数据的。现在需要做的是,当查询条件为空时?可否将其过滤掉? 答案是:可以的。现在开始接触mybatis的if标签,代码调整如下:
上述配置修改,运行测试方法,程序正常执行,输出结果如下:

之前demo查询,其结果均为一个对象,可否查询一个集合?也是可以的。代码改动如下:
EmployeeMapper.xml文件中的方法不需要做改动
修改接口EmployeeMapper中selectByDto方法返回类型,
修改之前:
Employee selectByDto(@Param("queryDto") EmployeeQueryDTO queryDTO);修改之后:
List selectByDto(@Param("queryDto") EmployeeQueryDTO queryDTO); 运行测试方法,程序正常执行,输出结果如下:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
