所遇问题:
在学习Mybatis时,经常会在核心配置文件中遇到标签,那么这个标签的具体作用和作用在哪里?
解答:
当我们编写核心配置文件时,最后会加入映射文件包名
<mappers>
<package name="com.xxxx.dao"></package>
</mappers>
这一步是为了将dao中的接口全部包含进入mappers映射配置文件,这时在代码中使用代理模式得到代理对象:如accountDao对象
AccountDao accountDao = sqlSession.getMapper(AccountDao.class);
此时程序将进入mapper.xml文件寻找对应的sql语句进行执行;
1、这时我们要将接口中的方法通过namespace=“com.xxxx.dao.AccountDao”+id="findById"这种方法将接口中的方法定位;
2、同时也在代码中以代理对象accountDao.findById();确认要执行的方法和sql语句;
3、在编写mapper中的如select等标签的时候,就经常需要在标签中添加如下的属性:
<select id="findById" resultType="user" parameterType="int">
select * from user where uid = #{id}
</select>
这其中的resultType和parameterType都是接口中方法的参数,分别是返回值类型和参数类型。
如果不加标签,有些像基本数据类型比如:int这种就不用特意写出全类名,因为源码中做出了映射,但是就需要将user类(自定义的domain包中的类)的全类名写出如:com.xxxx.domain.user这就非常的不方便,当后期需要进行修改时也需要一个一个的来,所以就在核心配置文件中写出标签。
<typeAliases>
<package name="com.xxxx.domain"></package>
</typeAliases>
这时就表示domain包下的类都被包含进入,所以在属性编写时只填写类名即可省去了步骤,简化开发。