mybatis学习笔记2


前言

本文将较为详细的阐述mybatis的配置文件


一、Maven依赖

mybatis所需依赖:

		<dependency>
	            <groupId>org.mybatis</groupId>
	            <artifactId>mybatis</artifactId>
	            <version>3.4.5</version>
	    </dependency>	

mysql所需依赖:

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

二、SqlMapConfig.xml(主配置文件)

基本配置

  1. 使用mybatis最基本的配置,主要包括两个部分:环境配置和注册映射文件配置。 其中环境配置主要填写一些连接数据库需要的属性。
  2. mappers标签配置的则是映射你的sql语句xml配置文件。

使用xml文件可以使用mapper 的resouce的属性进行配置

<mappers>
        <mapper resource="com/itheima/dao/IUserDao.xml"></mapper>
</mappers>

使用注解替代xml文件可以使用mapper 的class的属性进行配置

<mappers> 
	<mapper class="com.itheima.dao.IUserDao"/>
</mappers>

或者使用package标签

<mappers>
    <!--<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>-->
        <!-- package标签用于指定dao接口所在的包,当指定完成后就不需要再写mapper -->
        <package name="com.itheima.dao"/>
    </mappers>

完整配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--配置环境-->
    <environments default="mysql">
        <!-- 配置mysql的环境-->
        <environment id="mysql">
            <!-- 配置事务 -->
            <transactionManager type="JDBC"></transactionManager>

            <!--配置连接池-->
            <dataSource type="POOLED">
                <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>
            </dataSource>
        </environment>
    </environments>
    <!-- 配置映射文件的位置 -->
    <mappers>
    <!--<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>-->
        <!-- package标签用于指定dao接口所在的包,当指定完成后就不需要再写mapper -->
        <package name="com.itheima.dao"/>
    </mappers>
</configuration>

额外配置

配置别名

当配置了别名后在mappers配置文件中配置resultType时可以直接写上别名而不是全限定类名。
在这里插入图片描述
比如此处配置别名后只需写user,而不用写com.itheima.domain.User
并且别名时不区分大小写的,你可以写user也可以写成UsEr

具体配置:

<typeAliases>
    <!--<typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>-->
    <!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写 -->
        <package name="com.itheima.domain"/>
        
</typeAliases>

引入属性文件进行配置

  • mybatis除了可以直接用property标签配置数据库连接信息外,也可以用properties标签进行配置。
  • 通过properties标签的resource属性(或url属性)引入配置文件 然后properties标签用${}进行取值。

具体配置:

    <properties resource="jdbcConfig.properties"></properties>

或url方式

    <properties url="file:///D:/project/day02_eesy_02mybatisDao/src/main/resources/jdbcConfig.properties"></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>

jdbcConfig.properties文件内容:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy_mybatis
jdbc.username=root
jdbc.password=1234

这里要注意一下 ${}取值时的属性名要和jdbcConfig.properties文件的属性名对应上,不然取不到。

总结

完整整合版配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 可以在标签内部配置连接数据库的信息,也可以通过属性引用外部配置文件信息
        resource属性:常用的
               用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
        url属性:
               要求按照Url的写法来写地址
               协议 主机 端口 URI
    -->

    <properties resource="jdbcConfig.properties">
<!--    <properties url="file:///D:/project/day02_eesy_02mybatisDao/src/main/resources/jdbcConfig.properties">-->

<!--        <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="0000"></property>-->
    </properties>
    <!-- 使用typeAliases配置别名,它只能配置domain中类的别名
        type:实体类全限定类名
        alias:属性指定别名
        使用了别名后不再区分大小写
    -->
    <typeAliases>
    <!--<typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>-->
    <!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写 -->
        <package name="com.itheima.domain"/>
        
    </typeAliases>
    <!--配置环境-->
    <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>-->
        <!-- package标签用于指定dao接口所在的包,当指定完成后就不需要再写mapper -->
        <package name="com.itheima.dao"/>
    </mappers>
</configuration>

猜你喜欢

转载自blog.csdn.net/u013456390/article/details/112867895
今日推荐