mybatis+springboot中使用mysql的实例

下面是 "mybatis+springboot中使用mysql的实例" 的完整攻略:

1. 安装MySQL

首先需要安装MySQL数据库,推荐使用官方网站提供的安装包进行安装,安装完成后需要创建一个数据库和对应的数据表。使用以下命令打开MySQL的命令行客户端:

mysql -u root -p

输入密码登录MySQL之后,使用以下命令创建一个名为 test 的数据库:

CREATE DATABASE test;

使用以下命令切换到 test 数据库:

USE test;

使用以下命令创建一个名为 user 的数据表:

CREATE TABLE user (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(32) NOT NULL,
  age int(11) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 新建Spring Boot项目并引入MyBatis和MySQL的依赖

使用IDE创建一个Spring Boot项目,作为示例,项目名为 mybatis-demo。在 build.gradle 文件中添加 MyBatis 和 MySQL 的依赖:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
    implementation 'mysql:mysql-connector-java:8.0.25'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

3. 编写MyBatis的Mapper和XML配置文件

src/main/java 目录下创建一个名为 com.example.mybatisdemo.mapper 的包,并在该包下创建一个名为 UserMapper 的类,代码如下:

package com.example.mybatisdemo.mapper;

import com.example.mybatisdemo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user WHERE name = #{name}")
    User findByName(@Param("name") String name);
}

同时,在 src/main/resources 目录下创建一个名为 mapper 的文件夹,然后在该文件夹下创建一个名为 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.mybatisdemo.mapper.UserMapper">
    <select id="findByName" parameterType="java.lang.String"
            resultType="com.example.mybatisdemo.entity.User">
        SELECT * FROM user WHERE name = #{name}
    </select>
</mapper>

以上两个文件是 MyBatis 的核心配置文件,XML 文件中配置了对应的 SQL 语句,而 Mapper 接口则定义了如何访问数据库。

4. 编写实体类和Service层

src/main/java 目录下,创建一个名为 com.example.mybatisdemo.entity 的包,并在该包下创建一个名为 User 的类,代码如下:

package com.example.mybatisdemo.entity;

public class User {
    private Integer id;
    private String name;
    private Integer age;

    // getters and setters ...
}

src/main/java 目录下,创建一个名为 com.example.mybatisdemo.service 的包,并在该包下创建一个名为 UserService 的类,代码如下:

package com.example.mybatisdemo.service;

import com.example.mybatisdemo.entity.User;
import com.example.mybatisdemo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User findUserByName(String name) {
        return userMapper.findByName(name);
    }
} 

以上两个文件是 Service 层的核心文件,实体类定义了返回结果的数据结构,Service 类则定义了 MyBatis 的配置文件 Mapper 和查询数据库的代码之间的桥梁。

5. 编写Controller层

src/main/java 目录下,创建一个名为 com.example.mybatisdemo.controller 的包,并在该包下创建一个名为 UserController 的类,代码如下:

package com.example.mybatisdemo.controller;

import com.example.mybatisdemo.entity.User;
import com.example.mybatisdemo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/user/{name}")
    public User findUserByName(@PathVariable("name") String name) {
        return userService.findUserByName(name);
    }
}

以上代码是 Controller 层的核心文件,其中 @GetMapping 注解用于映射 HTTP GET 请求的访问路径, /user/{name} 就是应用程序的一个 RESTful API 接口,这个接口可以返回 JSON 格式的数据。

6. 配置MySQL连接信息

src/main/resources/application.properties 中配置 MySQL 连接信息,代码如下:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

7. 启动应用程序

在项目根目录下运行以下命令启动应用程序:

./gradlew bootRun

启动成功后,可以在浏览器中访问 http://localhost:8080/user/* 接口,其中 * 是待查询的用户名。例如,输入 http://localhost:8080/user/张三 即可查询用户名为张三的用户信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis+springboot中使用mysql的实例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • springboot 跨域配置类及跨域请求配置

    在Spring Boot应用程序中,我们可以使用跨域配置类来允许跨域请求。以下是Spring Boot跨域配置类及跨域请求配置的完整攻略: 添加依赖 在Spring Boot应用程序中,我们需要添加spring-boot-starter-web依赖。以下是一个Maven的示例: <dependency> <groupId>org.sp…

    Java 2023年5月15日
    00
  • java对XML文件的解析、节点的增加、删除操作总结

    Java对XML文件的解析、节点的增加、删除操作总结 在Java中,我们常常需要对XML文件进行解析、节点的增加或删除操作。下面将从以下两个方面对这一问题进行分析。 1. XML文件的解析 1.1 使用JDOM进行XML文件解析 JDOM是一款功能强大的Java XML解析库,它可以对XML文档进行解析,并操作XML文档中的元素和属性。其解析XML文档的核心…

    Java 2023年6月15日
    00
  • Java垃圾回收之标记压缩算法详解

    Java垃圾回收之标记压缩算法详解 什么是标记压缩算法 标记压缩算法(Mark-Compact Algorithm)是一种垃圾回收算法,它与标记清除算法和复制算法并称为三大经典垃圾回收算法之一。它是针对标记清除算法可能产生的内存碎片问题而提出的。 标记压缩算法分为两个步骤:标记活动对象和压缩内存。在标记活动对象阶段,标记所有存活对象,并将其从不可达对象中区分…

    Java 2023年5月19日
    00
  • spring mvc常用注解_动力节点Java学院整理

    1. 简介 Spring MVC框架是MVC设计模式的经典实现,通过基于注解的方式可以使得开发人员更加便捷地完成控制器的编写和请求的处理。本篇攻略整理了常用的Spring MVC注解,目的是为了帮助初学者加速对Spring MVC开发的理解和掌握。 2. 常用注解说明 @RequestMapping 用于指定请求的URL和请求方式 示例: “`java @…

    Java 2023年5月16日
    00
  • 在CentOS系统中检测Java安装及运行jar应用的方法

    在CentOS系统中检测Java安装及运行jar应用的方法: 1. 检测Java是否安装 可以通过以下命令检查Java是否安装在系统中: java -version 如果Java已经安装在系统中,会输出类似以下内容的信息: java version "1.8.0_191" Java(TM) SE Runtime Environment (…

    Java 2023年5月23日
    00
  • 如何通过JVM角度谈谈Java的clone操作

    那么让我们来详细讲解如何通过JVM角度谈谈Java的clone操作。 什么是Java的clone操作? Java的clone操作是用于复制Java对象的一种方式。在对一个Java对象进行clone操作时,会创建一个新的对象,新对象与原对象的内容相同,但是两个对象在内存中的地址是不同的。 clone操作的实现方式 Java的clone操作是通过实现Clonea…

    Java 2023年5月26日
    00
  • 详解Spring注解–@Autowired、@Resource和@Service

    当我们使用Spring框架进行开发时,注解是一个非常重要的概念。在Spring注解中,@Autowired、@Resource和@Service是三个最常用的注解。 @Autowired注解 @Autowired注解是Spring内置的一个注解,实现自动依赖注入。该注解可以标注在构造器、方法、参数和属性上。当Spring容器扫描到@Autowired注解时,…

    Java 2023年5月31日
    00
  • Redis有效时间设置以及时间过期处理操作

    以下是 Redis 有效时间设置以及时间过期处理操作的完整攻略: Redis 有效时间设置 在 Redis 中,我们可以通过设置键值对的有效时间来控制数据的过期时间。具体可以使用 EXPIRE key seconds 命令来设置某个键对应的有效时间,其中 key 表示键名,seconds 表示有效期时间(单位为秒)。 例如,我们可以设置一个名为 mykey …

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部