Singerw's Repository Singerw's Repository
首页
  • 相关文章

    • HTML相关文章
    • CSS相关文章
    • JavaScript相关文章
  • 学习笔记

    • JavaScript笔记
    • ES6笔记
    • Vue笔记
  • 相关文章

    • Spring相关文章
    • SpringBoot相关文章
    • MyBatis相关文章
    • MySQL相关文章
  • 学习笔记

    • SpringBoot笔记
    • Spring笔记
    • MyBatis笔记
    • MySQL笔记
    • JavaWeb笔记
    • JavaCore笔记
  • 学习笔记

    • Linux笔记
    • Git笔记
    • 技术文档
  • 偏门技术

    • GitHub技巧
    • 博客搭建
    • 科学上网
  • 安装教程

    • JDK
    • MySQL
    • Node.js
    • Linux
  • 终身学习
  • 面试人生
  • 心情杂货
  • 生活随笔
  • 归档
  • 标签
GitHub (opens new window)

Singerw

谁能够凭爱意将富士山私有
首页
  • 相关文章

    • HTML相关文章
    • CSS相关文章
    • JavaScript相关文章
  • 学习笔记

    • JavaScript笔记
    • ES6笔记
    • Vue笔记
  • 相关文章

    • Spring相关文章
    • SpringBoot相关文章
    • MyBatis相关文章
    • MySQL相关文章
  • 学习笔记

    • SpringBoot笔记
    • Spring笔记
    • MyBatis笔记
    • MySQL笔记
    • JavaWeb笔记
    • JavaCore笔记
  • 学习笔记

    • Linux笔记
    • Git笔记
    • 技术文档
  • 偏门技术

    • GitHub技巧
    • 博客搭建
    • 科学上网
  • 安装教程

    • JDK
    • MySQL
    • Node.js
    • Linux
  • 终身学习
  • 面试人生
  • 心情杂货
  • 生活随笔
  • 归档
  • 标签
GitHub (opens new window)
  • MyBatis学习笔记

    • 《MyBatis》学习笔记
    • MyBatis简介
    • 第一个MyBatis程序
    • 生命周期和作用域
    • 配置文件之基本优化
    • XML实现CRUD
    • Annotation实现CRUD
    • 万能Map
    • Mapper-XML文件
    • ResultMat的使用
    • 实现日志功能
    • MyBatis动态SQL
    • 实现分页功能
    • MyBatis缓存
    • MyBatis中配置文件示例
      • 1、mybatis-config.xml完整配置文件示例
      • 2、映射器
      • 3、类型别名
      • 4、数据库链接信息属性
      • 5、ResultMat
      • 6、开启全局缓存
    • MyBatis工具类
    • generator插件自动生成代码
  • MyBatis-Plus学习笔记

  • 《MyBatis》学习笔记
  • MyBatis学习笔记
Singerw
2021-09-25

MyBatis中配置文件示例

# MyBatis中使用的配置文件示例

# 1、mybatis-config.xml完整配置文件示例

【示例】:mybatis-config.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>
    <!--加载properties文件到MyBatis配置文件中-->
    <properties resource="db.properties"></properties>

    <!--配置log4j为日志实现-->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>

    <!-- 别名 -->
    <typeAliases>
        <typeAlias type="com.singerw.pojo.Users" alias="Users" />
        <typeAlias type="com.singerw.pojo.Category" alias="Category" />
        <typeAlias type="com.singerw.pojo.Article" alias="Article" />
    </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/singerw/mapper/ArticleMapper.xml"/>
        <mapper resource="com/singerw/mapper/UsersMapper.xml"/>
        <mapper resource="com/singerw/mapper/CategoryMapper.xml"/>
    </mappers>

</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

【示例】:db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/goku?serverTimezone=Asia/Shanghai
username=root
password=795200
1
2
3
4

# 2、映射器

<!--映射器-->
<!--每一个mapper.xml都需要在MyBatis核心配置文件中注册-->
<mappers>
    <mapper resource="com/singerw/mapper/UserMapper.xml"/>
    <mapper resource="com/singerw/mapper/ArticleMapper.xml"/>
</mappers>
1
2
3
4
5
6

# 3、类型别名

<!-- 别名 -->
<typeAliases>
    <typeAlias type="com.singerw.pojo.User" alias="User" />
    <typeAlias type="com.singerw.pojo.Article" alias="Article" />
</typeAliases>
1
2
3
4
5

# 4、数据库链接信息属性

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/goku?serverTimezone=Asia/Shanghai
username=root
password=795200
1
2
3
4
<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>
1
2
3
4
5
6
7
8
9
10
11

# 5、ResultMat

【示例】数据库中的User表字段

  • userid
  • username
  • userphone
  • userpassword
  • jurisdiction
  • createtime
  • logintime
  • userstatus

数据库中的字段和实体类中的字段不一致。

使用结果集映射

【示例】UserMapper.xml

<!--resultMap结果集映射-->
<resultMap id="userMap" type="User">
    <!-- 实体类和表列做关联-->
    <!-- id 主键 属性 -->
    <id property="id" column="userid"></id>
    <!--其他部分-->
    <!--column数据库中的字段,property实体类中的属性-->
    <result property="name" column="username"></result>
    <result property="phone" column="userphone"></result>
    <result property="password" column="userpassword"></result>
    <result property="jurisdiction" column="jurisdiction"></result>
    <result property="juri" column="createtime"></result>
    <result property="created" column="createtime"></result>
    <result property="logined" column="logintime"></result>
    <result property="status" column="userstatus"></result>
</resultMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

collection关联映射案例,通过用户ID查询用户和用户发表的文章

<!-- 映射关系的管理和定义 ,type指的是实体类型,id当前的resultMap的名字 -->
<resultMap type="Users" id="userMap2">
    <!-- 主键使用id -->
    <id property="id" column="userid"/>
    <!-- 一个result表示一个列和实体类的属性的对应关系 -->
    <result property="username" column="username"/>
    <result property="nickname" column="nickname"/>
    <result property="password" column="password"/>
    <result property="status" column="userstatus"/>
    <result property="email" column="email"/>
    <result property="userface" column="userface"/>
    <result property="created" column="user_created"/>
    <result property="lastlogin" column="lastlogin"/>

    <collection property="articleList" ofType="Article">
        <id property="id" column="articleid"/>
        <result property="title" column="title"/>
        <result property="content" column="content"/>
        <result property="summary" column="summary"/>
        <result property="created" column="category_created"/>
        <result property="status" column="articlestatus"/>
    </collection>
</resultMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

association关联映射,通过关键字或者文章ID查询一篇或多篇文章和每篇文章的作者信息

<!-- 映射关系的管理和定义 ,type指的是实体类型(取了别名),id当前的resultMap的名字 -->
<resultMap type="Article" id="articleMap">
    <!-- 主键使用id -->
    <id property="id" column="id"/>
    <!-- 一个result表示一个列和实体类的属性的对应关系 -->
    <result property="title" column="title"/>
    <result property="content" column="content"/>
    <result property="summary" column="summary"/>
    <result property="created" column="created"/>
    <result property="status" column="status"/>
    <!-- 此时我们的Article类中,增加了一个Users类型的属性 -->
    <association property="users" column="uid" javaType="com.singerw.pojo.Users">
        <!-- author类对应的表中的列 和 类属性关联 -->
        <id property="id" column="uid"/>
        <result property="username" column="username"/>
        <result property="nickname" column="nickname"/>
    </association>
</resultMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 6、开启全局缓存

<!--显式的开启全局缓存-->
<setting name="cacheEnabled" value="true"/>
1
2

在要使用二级缓存的Mapper.xml中开启

<!--在当前Mapper.xml中使用二级缓存-->
<cache/>



也可以自定义参数
<cache eviction="FIFO"
       flushInterval="60000"
       size="512"
       readOnly="true"/>
1
2
3
4
5
6
7
8
9
10
编辑 (opens new window)
#MyBatis
MyBatis缓存
MyBatis工具类

← MyBatis缓存 MyBatis工具类→

最近更新
01
Maven资源导出问题终极版
10-12
02
《MyBatis-Plus》学习笔记
10-07
03
MyBatis-Plus—配置日志
10-07
更多文章>
Theme by Vdoing | Copyright © 2020-2021 版权所有 | repository.singerw.com
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×