Mybatis入门(三)之取别名标签

今天内容比较简单,就是几个标签的介绍,但对于开发的效率确是有很大的提高,在实际开发中也是经常用到的一种手段。要介绍的标签有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>

猜你喜欢

转载自blog.csdn.net/stevensam_lin/article/details/82113006
今日推荐