欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-10 17:15:26
...

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

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

在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>

相关标签: mybatis