一、Mybatis的参数
parameterType输入类型:
1.简单类型
2.传递pojo对象
Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。
OGNL表达式:
Object Graphic Navigation Language
对象 图 导航 语言
它是通过对象的取值方法来获取数据。在写法上把get给省略了。
比如:我们获取用户的名称
类中的写法:user.getUsername();
OGNL表达式写法:user.username
mybatis中为什么能直接写username,而不用user.呢:
因为在parameterType中已经提供了属性所属的类,所以此时不需要写对象名
3.传递pojo包装对象
开发中通过 pojo传递查询条件﹐查询条件是综合的查询条件,不仅包括用户查询条件还
包括其它的查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递
输入参数。Pojo类中包含pojo。
需求:根据用户名查询用户信息,查询条件放到QueryVo的user属性中。
封装queryVo作为查询条件
创建QueryVo
定义查询方法
测试
二、Mybatis的输出结果封装
1.输出简单类型
2.输出pojo对象
3.输出pojo列表
实体类和数据库的列名如果不一致,解决方法有:
1)起别名
2)配置
第一种执行效率高,第二种开发效率高。
补充:修改User实体类,所有的属性不与数据库中的字段对应,这个时候所有的查询都不能拿到封装的结果。为什么只有userName能拿到数据,是因为mysql在window环境下是不区分大小写的,可以封装,linux下不可以。