今天内容比较简单,就是几个标签的介绍,但对于开发的效率确是有很大的提高,在实际开发中也是经常用到的一种手段。要介绍的标签有properties、typeAlias、package等标签。
一、properties
在之前的入门案例中,我们在SqlMapConfig.xml中配置了连接数据库必备的属性,如下:
<dataSource type="POOLED">
<!--配置连接数据库的4个基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/web_test2"></property>
<property name="username" value="root"></property>
<property name="password" value="123"></property>
</dataSource>
第一种修改:
写一个dbcConfig.properties文件,内容为:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/web_test2
jdbc.username=root
jdbc.password=123
将文件方法main文件夹的resource中:
在SqlMapConfig.xml文件的configuration标签中添加一个properties标签,然后再里面写上属性标签等值。如下图:
<configuration>
<properties resource="dbcConfig.properties">
<!--如果不加resource或者url标签,那么下面的属性就要添加,在配置连接池数据时value的值就要等于这里的name值,但这种方式没有什么实际意义
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"></property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>-->
</properties>
<!--配置环境-->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务 -->
<transactionManager type="JDBC"></transactionManager>
<!--配置连接池-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<!-- 配置映射文件的位置 -->
<mappers>
<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>
</mappers>
</configuration>
第二种修改,和上面的做法类似,只是将properties标签中的resource标签换成url标签,如下所示:
<properties url="file:///F:/Program Files/IdeaProjects/hello_maven/src/main/resources/jdbcConfig.properties">
</properties>
从两种方式的用法不难看出,resource和url的区别,url的值必须为全路径名,需要加协议和端口等信息,而resource就不需要这么麻烦,只要满足文件在resources文件夹下即可直接使用文件名来填写信息。
他们的共同点就是,我们如果需要修改数据库的连接信息,直接用打开属性文件来修改即可,并不需要再去查找对应的配置文件。
二、typeAlias
在SqlMapConfig.xml中properties标签下添加如下代码,那么我们在写mapper文件的时候就可以省略全限定类名,直接写类名。
<!--只能给实体类区别名-->
<typeAliases>
<typeAlias type="com.stevensam.domain.Student" alias="student"></typeAlias>
</typeAliases>
<!--配置查询所有学生的方法 返回值可以直接写类名-->
<select id="findAll" resultType="student">
SELECT * FROM student;
</select>
三、package
当有多个实体类在同一个包下的时候,我们并不需要想上面一个一个地添加typeAlias,只需要修改代码如下所示即可。
<!--只能给实体类区别名-->
<typeAliases>
<!--<typeAlias type="com.stevensam.domain.Student" alias="student"></typeAlias>-->
<!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->
<package name="com.stevensam.domain"></package>
</typeAliases>
package也还可以用在其他的标签中,如mappers中
<mappers>
<!--<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>-->
<!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
<package name="com.stevensam.dao"></package>
</mappers>