delphi读取xml中的内容property name传递参数_SpringBoot系列-整合Mybatis(XML配置方式)...-程序员宅基地

技术标签: springboot mybatis配置  mybatis 打印sql  springboot mybatis如何打印出查询语句  springboot flink结果输入到hbase  delphi读取xml中的内容property name传递参数  springboot 整合mybatis  

本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程。

本文目录

一、什么是 MyBatis?二、整合方式三、实战四、测试

一、什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

二、整合方式

SpringBoot整合Mybatis也有两种方式,分别为XML配置方式和注解方式,主要优势点如下:

  1. 注解方式:代码更加精简,方便。
  2. XML配置方式:隔离sql和业务代码,清晰表达sql,尤其对于较长的sql。

XML映射文件也很简单,只有很少的几个顶级元素:

  • cache – 对给定命名空间的缓存配置。
  • cache-ref – 对其他命名空间缓存配置的引用。
  • resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
  • sql – 可被其他语句引用的可重用语句块。
  • insert – 映射插入语句。
  • update – 映射更新语句。
  • delete – 映射删除语句。
  • select – 映射查询语句。

本文介绍XML配置方式,后续文章再介绍注解方式。

三、实战

新建一个spring boot项目spring-boot-mybatis-xml,按照下面步骤操作。

  1. pom.xml中引入jar

整合MyBatis的核心是依赖MyBatis-Spring-Boot-Starter,它提供了:

  • 自动检测现有的DataSource。
  • 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递。
  • 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
  • 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。

pom.xml重要内容如下:

<!-- mybatis-starter  -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>

<!-- MySQL 连接驱动依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
  1. application.yml中添加配置

application.yml中添加数据源和mybatis的配置,内容如下:

spring:
  #数据源
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
#mybatis配置
mybatis:
  typeAliasesPackage: com.example.springboot.mybatisxml.entity
  mapperLocations: classpath:mapper/*.xml
  config-location: classpath:mybatis-config.xml
  1. 添加User的映射文件

UserMapper.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.springboot.mybatisxml.dao.mapper.UserMapper" >
    <resultMap id ="UserMap" type="com.example.springboot.mybatisxml.entity.User">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="sex" property="sex"/>
        <result column="password" property="password"/>
        <result column="des" property="des"/>
    </resultMap>

    <select id = "queryAllUsers" resultType= "com.example.springboot.mybatisxml.entity.User">
      select * from user
    </select>
</mapper>
  1. 添加dao接口

接口的名字和映射文件的名字相同,接口中方法的名字和要调用的映射文件中的标签的id相同。

UserMapper.java代码如下:

public interface UserMapper {

    List<User> queryAllUsers();
}
  1. 添加访问控制层

UserController代码如下:

/**
 * UserController
 *
 * @Author: java_suisui
 *
 */
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    /**
     * 查询 所有用户
     *
     */
    @GetMapping("/queryAllUsers")
    public List<User> queryAllUsers(){
        return userService.queryAllUsers();
    }
}

四、测试

本地打开浏览器,访问http://localhost:8080/user/queryAllUsers,成功后返回如下结果:

[{"id":1,"name":"张三","password":"123456","sex":0,"des":"无备注"},
{"id":2,"name":"李四","password":"123456","sex":0,"des":"无备注"}]

到此SpringBoot整合Mybatis(XML配置方式)的功能已经全部实现,有问题欢迎留言沟通哦!

完整源码地址: https://github.com/suisui2019/springboot-study

推荐阅读

1.Java中打印日志,这4点很重要!
2.SpringBoot集成JWT实现权限认证
3.一分钟带你了解JWT认证!
4.SpringBoot中如何优雅的读取yml配置文件?
5.SpringBoot中如何灵活的实现接口数据的加解密功能?

限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:

37ab59b9f9ccc5edb7ccd6ce371c5809.png
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39584529/article/details/110460063

智能推荐

基于蒙特卡洛,copula函数,fuzzy-kmeans获取6个典型场景进行随机优化多类型电动汽车采用分时电价调度,考虑上级电网出力、峰谷差惩罚费用、风光调度、电动汽车负荷调度费用和网损费用-程序员宅基地

文章浏览阅读815次,点赞18次,收藏11次。充电站作为电动汽车的基础设施,实现电动汽车的有序充电是必要的。而随着电动汽车接入规模逐渐庞大,并且每辆电动汽车的充电行为互不影响的情况下,引导用户的充电行为将变得困难。在保证满足用户需求、电动汽车充电电池容量、电网变压器容量等约束的前提下,如何在短时间内对接入的电动汽车充电站进行优化调度,即如何提升调度效率使得策略更具现实意义是目前亟需解决的问题。在优化的目标函数中,可以综合考虑上级电网的出力需求、峰谷差惩罚费用、风光能源调度、电动汽车负荷调度费用以及网损费用等方面,从而实现对电力系统的更有效管理和利用。

javascript检测浏览器是否需要升级版本和提示_vue3 检测浏览器并提示-程序员宅基地

文章浏览阅读1.5k次。开发应用和总结_vue3 检测浏览器并提示

通过OSERDESE2实现并串转换-程序员宅基地

文章浏览阅读613次,点赞14次,收藏14次。Q1:经过TMDS编码后的单个分量通道为10bit,如何将并行的10bit高速串行输出?Q2:以1080P@60fps为例,如何确定对应的像素时钟?

sqlplus不是内部或外部命令-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏3次。在虚拟机中安装Oracle数据库,在主机中连接时,会报sqlplus不是内部或外部命令....错误;这是因为本机没有安装,这时需要解压以下两个文件,配置本地环境。地址:https://pan.baidu.com/s/1lz7ycKG820I8fN4VZOlYMA这是64位。解压后,把下面两个文件地址添加到path路劲下(就像添加JDK一样)。..._sqlplus不是内部或外部命令

nyoj5 Binary String Matching 查子串个数 strstr函数模板题_nyoj5串匹配-程序员宅基地

文章浏览阅读1.5k次。Binary String Matching时间限制:3000 ms | 内存限制:65535 KB难度:3描述Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B..._nyoj5串匹配

《数据分析与挖掘 第十四章 基于基站定位数据的商圈分析》_基于基站定位数据的商圈分析 scala-程序员宅基地

文章浏览阅读1.4k次。基于基站定位数据的商圈分析数据抽取以2014-1-1开始到2014-6-30结束时间作为分析窗口数据分析以55555这个人为例,判断其活动位置,基站号改变,说明其进入下一个区域,分析出2014-1-1下午零时53分进入36902基站,直到二时13分才进入36907基站,说明他在36902基站呆了80分钟数据预处理首先,去掉无用的属性,例如什么信令类型,LOC编号这些的,只留下日期,时间..._基于基站定位数据的商圈分析 scala

随便推点

Javamail发送邮件后并保存邮件到已发送_代码发送的邮件 邮件服务器有已发送的邮件吗-程序员宅基地

文章浏览阅读1.1w次。前言最近北京暴雨,不知道为什么,特喜欢下雨天,下雨天适合睡觉,同样也适合写作!需求分析最近有个需求是将发送的邮件保存到已发送,一般来说最简单的做法是在服务器上配置,但是产品说,很多用户不知道这个选项,最好技术来实现,好吧,既然这样说了,干就完了!查看JavaMail Api文档邮件是在邮件服务器上存储的,邮件服务器上建立了各种的文件夹,比如INB_代码发送的邮件 邮件服务器有已发送的邮件吗

【调剂】太原科技大学 材料科学与工程学院特种金属制造与固废高值化利用课题组招收冶金、材料、机械、化工、计算机类调剂生...-程序员宅基地

文章浏览阅读297次。公众号【计算机与软件考研】每天都会发布最新的计算机考研调剂信息!点击公众号界面左下角的调剂信息或者公众号回复“调剂”是计算机/软件等专业的所有调剂信息集合,会一直更新的。太原科技大学 材料科学与工程学院特种金属制造与固废高值化利用课题组招收冶金、材料、机械、化工、计算机类调剂生:一志愿为工学专业、数一数二均可。课题组简介:本课题组与山西建邦集团共同成立“优特钢新材料产业技术研究院”,并建设有“太原..._太原科技大学任志峰

docker-compose.yaml设置中国时区_把docker-compose.yml里的这一行 - tz=cn 改成 - tz=asia/shan-程序员宅基地

文章浏览阅读3w次,点赞11次,收藏14次。背景docker中如果对时区不加限制,默认会采用格林尼治时间(GMT),这给日常程序部署、日志查看、错误调试等带来了诸多麻烦与困扰。每次都需要将event发生的显示时间+8个时区,手工换算成北京时间,想想都令人抓狂。Dockerfile中配置时区在Dockerfile中,可以通过如下方式添加中国时区:FROM docker.io/centosMAINTAINER DAVID# 使用..._把docker-compose.yml里的这一行 - tz=cn 改成 - tz=asia/shanghai

【工具使用系列】关于 MATLAB 径向基神经网络,你需要知道的事-程序员宅基地

文章浏览阅读263次。2019独角兽企业重金招聘Python工程师标准>>> ..._径向基神经网络工具

经典搜索算法总结-程序员宅基地

文章浏览阅读1.1w次,点赞20次,收藏167次。前言0x01 搜索问题的形式化0x02 树搜索和图搜索0x03 搜索算法的评估0x04 盲目搜索算法0x04.01 宽度优先搜索算法BFS0x04.02 一致代价搜索算法UCS0x04.03 深度优先搜索算法DFS前言搜索问题是在解决各类问题时不可避免的重点难点,很多问题的求解过程都可以转变为搜索问题。比如,对于以下罗马尼亚问题,希望找到一条路径使得从城市 Arad 到城市 Bucuresti 的路径最短,这就是一个经典的搜索问题,在数据结构课程中,我们都知道使用 Dijkstra 算法来求得最优解,._搜索算法

华为云鲲鹏服务器安装gogs_kunpeng golang镜像-程序员宅基地

文章浏览阅读922次。部署环境名称类型服务器华为云鲲鹏服务器系统版本CentOS 7.6 64bit with ARM安装gogs安装gityum install git -y下载gogs的armv8版本 gogs_0.12.3_linux_armv8.tar.gz 上传到服务器上解压gogs_0.12.3_linux_armv8.tar.gztar -zxvf gogs_0.12.3_linux_armv8.tar.gz进入到对应目录cd gogs后台_kunpeng golang镜像

推荐文章

热门文章

相关标签