当前位置: 首页 > article >正文

Mybatis XML 配置文件

我们刚开始就有说Mybatis 的开发有两种方式:

1.注释

2.XML

注解和 XML 的方式是可以共存的

我们前面说的都是注释的方式,接下来是XML方式

XML的方式分为三步 : 

1.配置数据库(配在 application.yml 里面)

  这个跟注释的配置是一样的,username应该都是一样的,password记得写自己的

# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

2.指明XML 的路径(配在 application.yml 里面)

  最后一行冒号后面的第一个 mapper 是根据自己在 resource 创建的 directory 名字一样

mybatis:
  configuration: # 配置打印 MyBatis⽇志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true #配置驼峰⾃动转换
# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件
  mapper-locations: classpath:mapper/**Mapper.xml

在 resource 创建 directory 名为mapper

 

3.写XML的实现

创建一个接口名为 UserInfoXMLMapper

接口里面写如下代码

package com.example.mybatisdemo.mapper;

import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserInfoXMLMapper {
    List<UserInfo> selectAll();//声明这个方法
}

然后在刚刚创建的 mapper 里面再创建一个 directory 名为 UserInfoXMLMapper.xml(跟上面接口名一样)

然后把下面这一段复制进 UserInfoXMLMapper.xml

这里面的namespace后面那一段,就是刚刚创建的接口的第一行package后面再加上接口名

<?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.mybatisdemo.mapper.UserInfoXMLMapper">
</mapper>

接下来就可以在这里面写代码了,写一个查询所有数据,resultType等号后面跟着的是UserInfoXMLMapper接口的第二行import 后面跟着的内容

<?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.mybatisdemo.mapper.UserInfoXMLMapper">
    <select id="selectAll" resultType="com.example.mybatisdemo.model.UserInfo">
        select * from userinfo
    </select>
</mapper>

然后返回接口的页面,右键,generate,test,勾选selectAll,ok

然后对代码进行补充

package com.example.mybatisdemo.mapper;

import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

import static org.junit.jupiter.api.Assertions.*;

@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowired
    private UserInfoXMLMapper userInfoXMLMapper;
    @Test
    void selectAll() {
        List<UserInfo> userInfos = userInfoXMLMapper.selectAll();
        log.info(userInfos.toString());
    }

}

成功 


http://www.kler.cn/a/159131.html

相关文章:

  • SOLIDWORKS Toolbox:一键自动化,让紧固件与零部件管理更高效
  • 深入List集合:ArrayList与LinkedList的底层逻辑与区别
  • 嵌入式课程day13-C语言指针
  • 【日常记录-Git】git log
  • 阮一峰科技爱好者周刊(第 325 期)推荐工具:一个基于 Next.js 的博客和 CMS 系统
  • PostgreSQL物化视图详解
  • HarmonyOS学习--TypeScript语言学习(二)
  • 【Java GUI 窗体开发实践】基于抽象模板设计模式下实现Windows SSH连接Linux服务器
  • 2023美图创造力大会开幕,美图发布AI视觉大模型4.0
  • 根据字符出现频率排序 (哈希表,map,cmp,sort,遍历)
  • 微服务学习(十三):安装Consul
  • L.next与L->next
  • Linux--初识和基本的指令(3)
  • Linux socket编程(11):Unix套接字编程及通信例子
  • 把 Windows 11 装进移动硬盘:Windows 11 To Go
  • 报错:Parsed mapper file: ‘file mapper.xml
  • Java中迭代Map和List最简单直接办法
  • Kafka 生产者 API 指南:深入理解生产者的实现与最佳实践
  • Python智能语音识别语翻译平台|项目后端搭建
  • 前端时间的失败总结复盘
  • 深度学习在单线性回归方程中的应用--TensorFlow实战详解
  • 十二、FreeRTOS之FreeRTOS任务相关API函数
  • 电子学会C/C++编程等级考试2023年03月(四级)真题解析
  • 12、组合模式(Composite Pattern,不常用)
  • javascript object转换成json格式
  • github首次将文件合到远端分支,发现名字不是master,而是main