首页 > 其他分享 >SpringBoot整合Mybatis(SpringBoot3)

SpringBoot整合Mybatis(SpringBoot3)

时间:2024-03-20 17:23:37浏览次数:24  
标签:SpringBoot demo boot SpringBoot3 org Mybatis import com User

依赖pom.xml:

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

resource包下的Application.yml:

Application.yml
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/work     #自己数据库名
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.demo.pojo
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

pojo包下实体类User:

User
package com.demo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString

public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

mapper包下的接口UserMapper:

UserMapper
package com.demo.mapper;

import com.demo.pojo.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {
    List<User> getAll();

    int insert(User user);

    int delete(Long id);

    int update(User user);

}

resource包下mapper映射UserMapper

UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.demo.mapper.UserMapper">

    <select id="getAll" resultType = "User">
        select * from t_user
    </select>
    
    <insert id="insert">
        insert into t_user(id,name,age,email)
        values(#{id}, #{name}, #{age}, #{email})
    </insert>
    
    <delete id="delete">
        delete from t_user where id=#{id}
    </delete>

    <update id="update">
        update t_user set
            id=#{id},
            name=#{name},
            age=#{age},
            email=#{email}
        where id=#{id}
    </update>

</mapper>

主启动类DemoApplication:

DemoApplication
package com.demo;

import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.demo.mapper") // 注意自己路径
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

测试DemoApplicationTest:

DemoApplicationTest
package com.demo;

import com.demo.mapper.UserMapper;
import com.demo.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.sql.SQLOutput;
import java.util.List;

@SpringBootTest
class DemoApplicationTests {
    @Autowired
    private UserMapper userMapper;

    @Autowired
    private DataSource dataSource;
    private int count;

    @Test
    void dataSource() throws SQLException{
        System.out.println(dataSource.getConnection());
    }

    @Test
    void testGetAll() {
        List<User> list = userMapper.getAll();
        System.out.println(list);
    }

    @Test
    void testInsert(){
        User user = new User(666L, "qimiao", 22, "[email protected]");
        int count = userMapper.insert(user);
        System.out.println((count == 1 ? "插入成功" : "插入失败"));
    }

    @Test
    void deleteTest() {
        int count = userMapper.delete(345L);
        System.out.println((count == 1 ? "删除成功" : "删除失败"));
    }

    @Test
    void updateTest() {
        User user = new User(666L, "kuazhang", 53, "[email protected]");
        int count = userMapper.update(user);
        System.out.println((count == 1 ? "更新成功" : "更新失败"));
    }

}

测试结果:

检验数据库连接:

添加信息

删除信息

查询信息

标签:SpringBoot,demo,boot,SpringBoot3,org,Mybatis,import,com,User
From: https://www.cnblogs.com/pine1203/p/18084593

相关文章

  • mybatis一二级缓存简介
    一、前言1,代码和准备工作见:mybatis工作原理简介-seeAll-博客园(cnblogs.com); 二、一级缓存1,效果展示1.1,测试代码代码中,使用SqlSession查询过一次数据;本例在此之后,继续添加一段代码,使用同样的SqlSession再次查询,观察结果数据来自于缓存还是数据库。 1.2,观察第一次......
  • springboot项目打包时提示“程序包xxx不存在,找不到符号”
    springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找不到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的。xxx-parent:顶级父工程xxx-a:子项目1xxx-b:子项目2xxx-c:子项目3依赖关系......
  • SpringBoot添加跨域处理
    配置类实现WebMvcConfigurer接口重写addCorsMappings(CorsRegistryregistry)方法用registry对象添加映射路径、是否发送cookie、设置放行哪些原始域、放行哪行请求方法、放行哪些请求头信息、暴漏哪些请求头部信息@ConfigurationpublicclassCorsConfigimplements......
  • 基于Java的校园电商物流云平台(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1数据中心模块2.2商品数据模块2.3快递公司模块2.4物流订单模块三、系统设计3.1用例设计3.2数据库设计3.2.1商品表3.2.2快递公司表3.2.3物流订单表四、系统展示五、核心代码5.1查询商品5.2查询快递公......
  • 基于Java的医院门诊预约挂号系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1功能性需求2.1.1数据中心模块2.1.2科室医生档案模块2.1.3预约挂号模块2.1.4医院时政模块2.2可行性分析2.2.1可靠性2.2.2易用性2.2.3维护性三、数据库设计3.1用户表3.2科室档案表3.3医生档案表3.4......
  • 基于Java的考研专业课程管理系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1数据中心模块2.2考研高校模块2.3高校教师管理模块2.4考研专业模块2.5考研政策模块三、系统设计3.1用例设计3.2数据库设计3.2.1考研高校表3.2.2高校教师表3.2.3考研专业表3.2.4考研政策表四、系统展......
  • JAVA实战开源项目:高校大学生创业管理系统(Vue+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1系统公告模块2.2创业项目模块2.3创业社团模块2.4政府政策模块2.5创业比赛模块三、系统设计3.1用例设计3.2数据库设计3.2.1系统公告表3.2.2创业项目表3.2.3创业社团表3.2.4政策表四、系统展示五、核......
  • 【基于springboot旅游管理系统的毕业设计】
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于springboot的私人健身与教练预约管理系统源码
    收藏关注不迷路1.项目介绍本项目致力于开发一套高效、便捷的私人健身与教练预约管理系统,通过运用先进的Java技术、SpringBoot框架以及MIS(管理信息系统)的总体思想,结合Mysql等数据库技术的支持,实现了健身与教练预约管理的全面信息化。2.开发技术开发语言:Java框架:spring......
  • springboot/java/php/node/python情侣空间微信小程序【计算机毕设】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当今社会,随着科技的迅猛发展和智能移动设备的普及,人们的社交方式正在经历着翻天覆地的变化。特别是年轻情侣之间,他们更倾向于通过数字化平台来表达情感......