79.【Mybatis】(三)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 79.【Mybatis】

(七)、配置解析

1.核心配置文件

  • mybatis-configxml

2.环境配置(environment)

(1).Mybatis : 可以配置成适应多种环境

记住: 尽管可以配置多个环境,但每个SqlSessionFactory实列只能选择一种环境

(2).Mybatis 默认的事务管理器是JDBC, 默认的数据源是: POOLED

3.属性(properties)

属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置

(1).属性在外部进行配置

属性在外部进行配置

【db.properties】

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&charEncoding=gbk
username=root
password=121788
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <properties resource="db.properties"></properties>
<!--    默认选项-->
    <environments default="development">
<!--        第一套环境-->
        <environment id="development">
<!--    事务管理器-->
            <transactionManager type="JDBC"/>
<!--     数据源       -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
<!--    每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="Com/Jsxs/Dao/UserMapper.xml"/>
    </mappers>
</configuration>

(2).在内部配置文件
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;charEncoding=gbk"/>
                <property name="username" value="root"/>
                <property name="password" value="121788"/>
            </dataSource>
        </environment>
    </environments>
<!--    每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="Com/Jsxs/Dao/UserMapper.xml"/>
    </mappers>
</configuration>

(3).如果两个文件有同一个字段,优先使用外部配置文件的
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <properties resource="db.properties">
        <property name="username" value="12345"/>
        <property name="password" value="123456"/>
    </properties>
<!--    默认选项-->
    <environments default="development">
<!--        第一套环境-->
        <environment id="development">
<!--    事务管理器-->
            <transactionManager type="JDBC"/>
<!--     数据源       -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
<!--    每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="Com/Jsxs/Dao/UserMapper.xml"/>
    </mappers>
</configuration>
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&charEncoding=gbk
username=root
password=121788

4.配置文件的位置顺序(约定大于配置)

5.类型别名(typeAliases)

(1).类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写

核心配置文件

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <properties resource="db.properties"></properties>
<!--    类型别名-->
    <typeAliases>
        <typeAlias type="Com.Jsxs.pojo.User" alias="User"></typeAlias>
    </typeAliases>
<!--    默认选项-->
    <environments default="development">
<!--        第一套环境-->
        <environment id="development">
<!--    事务管理器-->
            <transactionManager type="JDBC"/>
<!--     数据源       -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
<!--    每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="Com/Jsxs/Dao/UserMapper.xml"/>
    </mappers>
</configuration>

返回类型运用别名代替

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace绑定一个对应的Dao/Mapper接口-->
<mapper namespace="Com.Jsxs.Dao.UserMapper">
<!--    查询语句全部用户-->
    <select id="getUserList" resultType="User">
        select *from mybatis.user
    </select>
<!--    根据ID查询用户-->
    <select id="getUserById" parameterType="int" resultType="User">
        select *from mybatis.user where id=#{id}
    </select>
<!--    增加一个用户,对象中的可以直接取出来-->
    <insert id="addUser" parameterType="User">
        insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd})
    </insert>
<!--    删除一个用户-->
    <delete id="removeUser" parameterType="int">
        delete from mybatis.user where id=#{id}
    </delete>
<!--    更改用户的信息-->
    <update id="updateUser" >
        update  mybatis.user set pwd="123456789"
    </update>
</mapper>

(2).扫描实体类的包,它的默认别名就为这个类的类名。(不限大小写)

核心配置文件(扫描实体类的包)

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <properties resource="db.properties"></properties>
<!--    类型别名-->
    <typeAliases>
       <package name="Com.Jsxs.pojo"/>
    </typeAliases>
<!--    默认选项-->
    <environments default="development">
<!--        第一套环境-->
        <environment id="development">
<!--    事务管理器-->
            <transactionManager type="JDBC"/>
<!--     数据源       -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
<!--    每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="Com/Jsxs/Dao/UserMapper.xml"/>
    </mappers>
</configuration>

返回类型用别名来替代

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace绑定一个对应的Dao/Mapper接口-->
<mapper namespace="Com.Jsxs.Dao.UserMapper">
<!--    查询语句全部用户-->
    <select id="getUserList" resultType="User">
        select *from mybatis.user
    </select>
<!--    根据ID查询用户-->
    <select id="getUserById" parameterType="int" resultType="User">
        select *from mybatis.user where id=#{id}
    </select>
<!--    增加一个用户,对象中的可以直接取出来-->
    <insert id="addUser" parameterType="User">
        insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd})
    </insert>
<!--    删除一个用户-->
    <delete id="removeUser" parameterType="int">
        delete from mybatis.user where id=#{id}
    </delete>
<!--    更改用户的信息-->
    <update id="updateUser" >
        update  mybatis.user set pwd="123456789"
    </update>
</mapper>

(3).使用建议

(1).在实体类比较少的时候,使用第一种方式。

(2).如果实体类十分多,建议使用第二种方式。

(3).区别: 第一种方式可以DIY(自定义)。第二种: 不行,如果非要改,需要在实体类上增加注解。

(4).注解优先级比配置高
@Alias("user");

(5).如果结果集映射不对的话,那么查询到的数据就会为Null

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 数据库连接
MyBatis大全
MyBatis大全
54 0
|
7月前
|
SQL Java 数据库连接
|
7月前
|
Java 关系型数据库 数据库连接
Mybatis-plus
Mybatis-plus
|
4月前
|
SQL Java 数据库连接
Mybatis02(一)
Mybatis02(一)
29 0
|
5月前
|
算法 Java 数据库连接
MyBatis-Plus详解(2)
MyBatis-Plus详解(2)
42 0
|
5月前
|
Java 关系型数据库 MySQL
MyBatis-Plus详解(1)
MyBatis-Plus详解(1)
52 0
|
5月前
|
SQL 算法 Java
MyBatis-Plus详解(3)
MyBatis-Plus详解(3)
64 0
|
7月前
|
Java 数据库连接 数据库
mybatis的@MappedTypes
mybatis的@MappedTypes
103 1
|
7月前
|
SQL Java 数据库连接
MyBatis
MyBatis
61 0
|
XML Java 数据库连接