03 MyBatis配置文件——SqlMapConfig.xml

目录

一、MyBatis配置文件结构:

二、<properties>标签

三、<settings>标签

四、<plugins>标签

五、<typeAliases>标签

六、<environments>标签

七、<mappers>标签(四种注册映射文件或持久层接口的方式)

1 使用相对路径注册映射文件

2.使用绝对路径注册映射文件

3.注册持久层接口

4.注册一个包下的所有持久层接口​​​​​​​


一、MyBatis配置文件结构:

注意:

配置文件各类型顺序要严格按照如下顺序配置,顺序不能错乱,否则会导致编译不通过。如properties配置文件不能再typeAliases配置文件下面。

二、<properties>标签

介绍:

属性值定义。properties标签中可以定义属性值,也可以引入外部配置文件。无论是内部定义还是外部引入,都可以使用${name}获取值。

例如:我们可以将数据源配置写到外部的db.properties中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源。

1.编写db.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis
jdbc.username=root
jdbc.password=123456

2.在配置文件中引入db.properties

<!--导入db.properties文件-->
    <properties resource="db.properties"></properties>


    <!-- 配置环境 -->
    <environments default="mysql">
        <environment id="mysql">
            <!--  事务类型 -->
            <!--type类型有JDBC、MANAGED两种,一般设为JDBC,
                JDBC需要对增删改进行手动提交事务,MANAGED会自动提交事务-->
            <transactionManager type="JDBC"></transactionManager>

            <!--  数据源 -->
            <!--dataSource的type属性:
                POOLED:使用连接池管理连接,使用MyBatis自带的连接池(一般都是使用POOLED)
                UNPOOLED:不使用连接池,直接由JDBC连接
                JNDI:由JavaEE服务器管理连接,如果使用Tomcat作为服务器则使用Tom自带的连接池管理
                (JNDI一般由运维人员使用,关系到服务器)-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

3.注意,properties文件中value的值不用双引号。如下:

 

4.知识点整理:

4.1.在MyBatis配置文件中,<properties>的作用是“配置属性”

4.2.在MyBatis配置文件中,<properties>引入外部文件的属性为“resource”

三、<settings>标签

介绍:

<settings> 是配置MyBatis运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。后期会使用该标签配置缓存和延迟加载等。

四、<plugins>标签

介绍:

<plugins> 是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。后期会使用该标签配置分页插件。

五、<typeAliases>标签

介绍:

MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。除此之外,我们也可以使用 <typeAliases> 设置自定义别名。

1.为一个类配置别名

<!--语法:-->
    <typeAliases>
        <typeAlias type="全类名" alias="别名"></typeAlias>
    </typeAliases>

 此时我们即可在映射文件中使用自定义别名,如:

(1)配置文件

   <typeAliases>
        <!--typeAliases设置别名-->
        <!--为一个类设置别名-->
        <!--type:全类名  alias:别名-->
        <typeAlias type="com.itbaizhan.pojo.User" alias="user"></typeAlias>
    </typeAliases>

(2)映射文件

 <!--给parameterType、resultType传入别名,其中
        parameterType的别名是为一个包设置别名,别名和类名一致
        resultType   的别名是为一个类设置别名,别名为自定义类型   -->
    <select id="findPage3" parameterType="PageQuery" resultType="user">
        select * from user limit #{startIndex},#{pageSize}
    </select>

注意:数据库跟IDEA不区分大小写

2.为一个所有包下的所有类配置别名

<!--语法:-->
    <typeAliases>
        <package name="包名"></package>
    </typeAliases>

 (1)配置文件:

  <typeAliases>
        <!--为一个包下的所有类设置别名,别名是:省略包名,和类名一样-->
        <package name="com.itbaizhan.pojo"/>
    </typeAliases>

 (2)映射文件:

<!--给parameterType、resultType传入别名,其中
        parameterType的别名是为一个包设置别名,别名和类名一致
        resultType   的别名是为一个类设置别名,别名为自定义类型   -->
    <select id="findPage3" parameterType="PageQuery" resultType="user">
        select * from user limit #{startIndex},#{pageSize}
    </select>

3.知识点整理:

在MyBatis配置文件中,配置别名使用的标签为“typeAliases”

<typeAliases>中使用“<package>”可以为一个包下的所有类配置别名

六、<environments>标签

1.<environments> 可以为MyBatis配置数据环境。

2.配置事务管理、连接池

<!-- 配置环境 -->
    <environments default="mysql">
        <environment id="mysql">
            <!--  事务类型 -->
            <!--type类型有JDBC、MANAGED两种,一般设为JDBC,
                JDBC需要对增删改进行手动提交事务,MANAGED会自动提交事务-->
            <transactionManager type="JDBC"></transactionManager>

            <!--  数据源 -->
            <!--dataSource的type属性:
                POOLED:使用连接池管理连接,使用MyBatis自带的连接池(一般都是使用POOLED)
                UNPOOLED:不使用连接池,直接由JDBC连接
                JNDI:由JavaEE服务器管理连接,如果使用Tomcat作为服务器则使用Tom自带的连接池管理
                (JNDI一般由运维人员使用,关系到服务器)-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

 3.dataSource的type属性:

POOLED:使用连接池管理连接,使用MyBatis自带的连接池。

UNPOOLED:不使用连接池,直接由JDBC连接。

JNDI:由JAVAEE服务器管理连接,如果使用Tomcat作为服务器则使用Tomcat自带的连接池管理。

七、<mappers>(四种注册映射文件或持久层接口的方式)

介绍:

<mappers> 用于注册映射文件或持久层接口,只有注册的映射文件才能使用,共有四种方式都可以完成注册:

1 使用相对路径注册映射文件

<mappers>
        <!--第一种:使用相对路径注册映射文件-->
        <mapper resource="com/itbaizhan/mapper/UserMapper.xml"></mapper>
</mappers>

2.使用绝对路径注册映射文件

 <mappers>
         <!--第二种:使用绝对路径注册映射文件-->
        <mapper url="file:///C:\Users\txxiaoer\Desktop\SSM框架Demo\mybatiscase\mybatisDemo1\src\main\resources\com\itbaizhan\mapper\UserMapper.xml"></mapper>

</mappers>

3.注册持久层接口

<mappers>
        <!--第三种:注册持久层接口-->
        <mapper class="com.itbaizhan.mapper.UserMapper"></mapper>
</mapppers>

4.注册一个包下的所有持久层接口

<mappers>
        <!--第四种:注册一个包下的所有持久层接口-->
        <package name="com.itbaizhan.mapper"/>
</mappers>

5.知识点整理:

5.1.在MyBatis配置文件中, <mapper> 注册持久层接口使用的属性是“class”

5.2.在MyBatis配置文件中, <mappers> 下使用 <package> 表示 “注册一个包下的所有持久层接口 ”

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 是一款使用 XML 或注解配置的持久层框架,它可以自动化地将数据库中的数据映射到 Java 对象中。在 MyBatis 中,mapper 与 mapper.xml 是配对使用的,其中 mapper 是接口,而 mapper.xml 是映射配置文件。 mapper 接口中定义了数据库操作的方法,而 mapper.xml 中则定义了这些方法的 SQL 语句以及参数映射规则、结果集映射规则等。 下面是一个简单的例子: 1. 定义 mapper 接口 ```java public interface UserMapper { User selectUserById(Integer id); } ``` 2. 定义 mapper.xml 映射配置文件 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.UserMapper"> <resultMap id="userResultMap" type="com.example.User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> </resultMap> <select id="selectUserById" resultMap="userResultMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 上述代码中,namespace 属性指定了 mapper 接口的全限定名,resultMap 标签定义了一个结果集映射规则,select 标签定义了一个查询操作,其中 id 属性指定了 mapper 接口中的方法名,resultMap 属性指定了结果集映射规则的 id。 3. 在 MyBatis 配置文件中引入 mapper.xml ```xml <?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> <mappers> <mapper resource="com/example/UserMapper.xml"/> </mappers> </configuration> ``` 上述代码中,mapper 标签指定了映射配置文件的位置。 这样就完成了 mapper 与 mapper.xml 的配置。在代码中调用 selectUserById 方法时,MyBatis 会根据 mapper.xml 中的配置自动生成 SQL 语句,并将查询结果映射到 User 对象中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值