前言
基本上我们对数据库的操作都在映射文件中编写,通过mapper代理方式简化配置,同时依据不同的参数和返回类型完成相关需求
一:parameterType输入参数
简单类型:
参数是基本类型,在之前已演示
Pojo类型
即参数类型是一个对象,如之前的添加操作
包装pojo类型
即在类中包含另一个对象,如
配置文件中
参数是包装类,注意参数是包装类的属性
Map
同传递pojo对象一样,map的key相当于pojo的属性
显然,参数是hashmap,其中#{id}与#{name}都是hashmap的key
接口文件
测试类:
输出映射
Resulttype:
使用要求:
使用resultType进行结果映射时,需要查询出的列名和映射的对象的属性名一致,才能映射成功。
如果查询的列名和对象的属性名全部不一致,那么映射的对象为空。
如果查询的列名和对象的属性名有一个一致,那么映射的对象不为空,但是只有映射正确那一个属性才有值。
简单类型:resultType=”int”
Pojo对象:resultType=”com.zwl.pojo.User”
如之前的案例
Resultmap
使用resultMap进行结果映射时,不需要查询的列名和映射的属性名必须一致。但是需要声明一个resultMap,来对列名和属性名进行映射
其中id为查询结果中唯一列映射,result标签为映射结果中的普通列
|
|
其中resultmap必须与声明中的id保持一致,这样才能引用
接口:
测试代码:
|
|
mybatis与hibernate的区别及各自应用场景
Mybatis技术特点:
1、 通过直接编写SQL语句,可以直接对SQL进行性能的优化;
2、 学习门槛低,学习成本低。只要有SQL基础,就可以学习mybatis,而且很容易上手;
3、 由于直接编写SQL语句,所以灵活多变,代码维护性更好。
4、 不能支持数据库无关性,即数据库发生变更,要写多套代码进行支持,移植性不好。
Hibernate技术特点:
1、 标准的orm框架,程序员不需要编写SQL语句。
2、 具有良好的数据库无关性,即数据库发生变化的话,代码无需再次编写。
3、 学习门槛高,需要对数据关系模型有良好的基础,而且在设置OR映射的时候,需要考虑好性能和对象模型的权衡。
4、 程序员不能自主的去进行SQL性能优化。