79.【Mybatis】(三)

本文涉及的产品
云数据库 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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
缓存 Java 数据库连接
Mybatis
Mybatis
22 0
|
8月前
|
Java 数据库连接 mybatis
|
8天前
|
SQL Java 数据库连接
MyBatis-Plus详细介绍
MyBatis-Plus是基于MyBatis框架的增强工具,致力于简化MyBatis的开发。它提供了一系列的增强功能,包括代码生成器、分页查询、性能分析等,大大提高了开发效率。
11 0
|
22天前
|
SQL 缓存 Java
mybatis使用总结
mybatis使用总结
|
2月前
|
SQL Java 数据库连接
从0开始回顾Mybatis
Mybatis 1、什么是Mybatis? 概念: 1. Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 2. MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 缺点: 1. SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求
|
SQL Java 数据库连接
Mybatis之discriminator(鉴别器)详解
前言 最近干了一个工作是使用discriminator去写一个新的API,那么写这个新的API原因是什么呢?原因是这样的:我们的项目使用Mybatis,我们项目中有一个实体类叫做User,在User中还含有很多别的实体类,例如Role,Permission,Address等(有经验的肯定知道这种嵌套实体类的情况,使用和)。
3896 0
|
8月前
|
XML Java 数据库连接
|
3月前
|
SQL 缓存 Java
|
5月前
|
Java 数据库连接 数据库
Mybatis及Mybatis-Plus使用
Mybatis及Mybatis-Plus使用
610 2
Mybatis及Mybatis-Plus使用
|
8月前
|
SQL Java 数据库连接