相对路径与绝对路径
在初学时相对路径和绝对路径总是写不明白,致使程序跑不起来,“.”和“/”、“\”也感觉一直乱糟糟,不知道用哪个,放多少。所以特意来梳理一下,也希望对后学者有所帮助。
首先,先按照我个人的理解带着大家理解一下两个概念:
绝对路径:参照物可以理解为你的电脑,你的系统。即相对于你的系统而言,文件的路径。
相对路径:参照物为你当前所在的文件夹。即相对于你当前的目录而言,文件的路径。
注:以下内容为Windows系统,Windows系统中路径分隔符为"" ,linux系统为“/”。
"/":表示根目录。
"./":表示当前目录。
"../":表示上一层目录。
示例:
绝对路径一般显示的格式为 :
某个盘——某个文件夹——某个文件 C:\Users\ComputerUser\Desktop\路径讲解.txt
相对路径一般的显示格式为:
某个文件夹——某个文件
<img src=”imgs/logo2.png”>
<img src=”./imgs/logo2.png”>
<img src=”../imgs/logo1.png”>
而在我们Java的IO流中,也会涉及到文件的读和写,那么也会用到路径。
namespace
命名空间,如同它的名字:命名的空间。可以理解成名字的所属范围。
之所以出来这样一个东西,是因为我们单词是有限的,所能起的属性名也就是有限的,在不同的代码段中不可避免的会发生重名的现象。想想重名这个问题就是十分严重的了,程序运行起来一定会出现问题。那么为了解决这个问题,就引入了命名空间这个概念,通过using namespace xxx;就可以表明你所使用的库函数来自哪个命名空间,这样一来就不会引起不必要的冲突了。
这里联想一下我们Java中的包思想,我们在import的时候,也可以选择不将整个包都导入,而是有选择性的导入某个包内的某个类,道理都是一样的。
在我们的C++中这种体现最明显。我们在学C++时,入门学的第一段代码就是:
#include <iostream>
using namespace std;
这里的std,就是命名空间的名字。
而我所讲的,希望大家关注的是XML配置文件中namespace属性的应用,以namespace区分标签。
举个例子:
下面是一个Dao实现的xml配置文件,我们可以看到在mapper标签中应用了namespace,他的作用就是区分不同XML文件中的mapper。
因为,我们在编写项目时,不可能只有一个Dao,自然也就不可能只有一个Dao实现,自然也就需要配置多个Dao的mapper映射,那么这种情况下,就需要对不同的Dao加以区分。
<mapper namespace="com.hzyc.dao.StudentDao" >
<select id="find123" parameterType="_int" resultType="studentModel" >
select * from student where id = #{id}
</select>
</mapper>
parameterType与resultType
name
顾名思义,描述的属性是名字。
id
id,提到Id我们自然联想到IdCard(身份证)。Id和Name之间就很好理解了。对于我们中国人来说,就像我们每个人的身份证:有姓名还有身份证号。那么我们说,名字是可以重复的,但Id人和人之间却是不一样的,他可以作为每个人的唯一标识。
对于程序也是一样
UID
resource
<mappers>
<mapper resource="com/hzyc/mapper/StudentDao.xml" />
</mappers>
class
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name="basePackage" value="com.hzyc.dao" />
</bean>
package
<context:component-scan base-package="com.hzyc.controller" />