Mybatis对于数据持久层(Dao)的开发有两种方式
1. 原始的Dao开发
原始的Dao开发就是我们定义IDao接口类,然后自己写其实现类DaoImpl 在实现类中去逐个调用其提供的select 、insert等方法
此种方式的缺点是:有许多重复的代码
2. Mapper代理的方式
使用Maper 代理的方式我们只需要定义mapper接口即可,Mybatis会自动帮我们生成我们接口与mapper.xml调用的代理类
我们再使用此种方式时需要注意:在编写mapper接口时必须要遵循一定的规范,mybatis才能帮我们成功生成代理类
规范如下:
(1) maper 接口的文件名必须要与其对应mapper.xml中的nameSpace一致,如UserMapper那么其xml中的nameSpace应该是user
(2) maper接口中的方法名要与其想调用的xml中定义的一致
(3)mapper接口中方法的传入参数需要与其对应xml中定义的parameterType一致
(4)mapper接口中方法的返回参数需要与其对应xml中定义的resultType或者RessultMap一致
3. 相关数据连接可以通过Properties文件读入,在mybatis中通过 引入资源文件
4.关于Mapper 文件的开发
对于多表关联一对一的查询,有两种方式实现
1) 使用resultType实现
根据sql返回的结果自己定义个Bean,Bean中的属性与sql返回的结果一一对应即可。
2) 使用resultMap实现
即将结果中的属性分别映射到相应的对象中,这就需要在写映射时用到关键字**association**在association中定义关联对象的映射关系,对于对象的指定他使员工javaType来指定。
两种方法的对比:
都能实现sql结果映射为对象,第一种比较简单。
对于多表关联一对多查询
需要使用关键字collection 里面定义结果bean中的list对象对于对象类型的指定它使用ofType来指定