首页 文章 精选 留言 我的

SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作

前言

什么是 MyBatis?

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

Jar包说明

本次采用mybatis-spring-boot-starter_v2.1.1版本,对应的MyBatis版本为3.5.3。并且数据库适应MySQL_v5.6.46版本,因此还需要引入MySQL驱动包。

编码

1.添加MyBatis和MySQL依赖

打开pom.xml文件,添加

xml 复制代码
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.1.1</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>

2.数据库表准备

这里以account表为例子,创建account表

sql 复制代码
CREATE TABLE `account` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(128) NOT NULL COMMENT '用户名',
  `passwd` varchar(128) NOT NULL COMMENT '密码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

并且创建对应的实体类Account.java

java 复制代码
package org.xujun.springboot.model;

/**
 * <p>Title : Account</p>
 * <p>Description : Account</p>
 * <p>DevelopTools : Eclipse_x64_v4.13.0R</p>
 * <p>DevelopSystem : Windows7</p>
 * <p>Company : org.xujun</p>
 * @author : XuJun
 * @date : 2019年12月18日 下午3:07:27
 * @version : 1.0.0
 */
public class Account {

    /** ID **/
    private Long id;
    /** 用户名 **/
    private String name;
    /** 密码 **/
    private String passwd;

    public Account() {
        super();
    }

    public Account(Long id, String name, String passwd) {
        super();
        this.id = id;
        this.name = name;
        this.passwd = passwd;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Account [id=");
        builder.append(id);
        builder.append(", name=");
        builder.append(name);
        builder.append(", passwd=");
        builder.append(passwd);
        builder.append("]");
        return builder.toString();
    }

}

3.配置SpringBoot的application.properties文件

因为SpringBoot2.x默认使用hikari作为连接池,所以以下为hikari的配置方式

sh 复制代码
# 数据库配置
# spring.datasource.name : 数据源名称
# spring.datasource.driverClassName : 数据库驱动
# spring.datasource.url : 数据库连接地址
# spring.datasource.username : 数据库用户名
# spring.datasource.password : 数据库密码
# spring.datasource.type : 数据库类型
# spring.datasource.hikari.pool-name : 数据库连接池名称
# spring.datasource.hikari.minimum-idle : 最小连接数
# spring.datasource.hikari.maximum-pool-size : 最大连接数
# spring.datasource.hikari.auto-commit : 是否自动提交
# spring.datasource.hikari.idle-timeout : 连接闲置超时时间
# spring.datasource.hikari.max-lifetime : 连接在连接池中的存活时间
# spring.datasource.hikari.connection-timeout : 连接数据库超时时间
# spring.datasource.hikari.connection-test-query : 连接测试语句
spring.datasource.name=mysqlDataSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springBoot2?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.pool-name=hikariPool
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1

4.创建MyBatis的Mapper文件

首先创建AccountMapper.java接口文件

java 复制代码
package org.xujun.springboot.dao;

import org.xujun.springboot.model.Account;

@Mapper
public interface AccountMapper {
    
    Integer add(Account ac);

}

接着创建AccountMapper.xml文件

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="org.xujun.springboot.dao.AccountMapper">

	<insert id="add" parameterType="org.xujun.springboot.model.Account">
		INSERT INTO account (name, passwd) VALUES (#{name}, #{passwd})
	</insert>
	
</mapper>

注意:在MyBatis的xml配置文件中,SQL语句不可用;结尾

5.编写Controller测试MyBatis插入数据

新增MyBatisController.java

java 复制代码
package org.xujun.springboot.controller;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.xujun.springboot.dao.AccountMapper;
import org.xujun.springboot.model.Account;

@RestController
public class MyBatisController {
    
    @Resource
    private AccountMapper accountMapper;
    
    @RequestMapping("mybatis")
    public String mybatis() {
        Account ac = new Account();
        ac.setName("xujun");
        ac.setPasswd("654321");
        accountMapper.add(ac);
        return "suc";
    }

}

6.测试结果

运行项目,并且访问[http://127.0.0.1:8080/mybatis]。结果如下图所示

总结:本文主要讲解了SpringBoot整合MyBatis实现对数据的持久化,整合方式并不难,而对数据的持久化参考MyBatis即可。

优秀的个人博客,低调大师

微信关注我们

本文章为原创内容,如需转载请注明来源!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

SpringBoot2编写第一个Controller,响应你的http请求并返回结果

SpringBoot2编写第一个Controller,响应你的http请求并返回结果

前言: SpringBoot的Controller模块用的是SpringMvc,所以用法和MVC没有差异。 本文章主要讲解 1.如何接收一个请求 2.如何获取请求的参数 3.常用的两种返回值JSONObject和ModelAndView 4.GET请求和POST请求 5.获取路径参数 6.HttpServletRequest和HttpServletResponse对象 编码 1.新建一个HelloController.java类,代码和结构如图所示 java 复制代码 package org.xujun.springboot.controller; import org.springframe...

Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池

Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池

前言 什么是数据库连接池? 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 数据库连接池对比 Druid: Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,是一个可用于大数据实时查询和分析的高容错、高性能的开源分布式系统,尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍能够保持100%正常运行。主要特色:为分析监控设计;快速的交互式查询;...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册