SpringBoot整合Mybatis与druid实现流程详解

SpringBoot整合Mybatis与druid实现流程详解

1. 项目搭建

首先,我们需要在项目中引入以下依赖:

<!-- SpringBoot Web Starter -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- SpringBoot Mybatis Starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version> <!-- 注意版本号 -->
</dependency>

<!-- druid Starter -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.6</version> <!-- 注意版本号 -->
</dependency>

<!-- MySQL Connector -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

2. 配置数据源

application.properties文件中,配置数据源信息:

# MySQL 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

# Druid 配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters=stat,wall,log4j
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.testOnBorrow=true
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1 FROM dual

# Mybatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml

3. 创建Java

3.1 创建数据源配置类

@Configuration
public class DruidDataSourceConfig {

    @ConfigurationProperties(prefix = "spring.datasource.druid")
    @Bean(initMethod = "init")
    public DruidDataSource druidDataSource() {
        return new DruidDataSource();
    }

}

3.2 创建Mybatis配置类

@Configuration
@MapperScan("com.example.mapper")
public class MybatisConfig {

    /**
     * Mybatis分页插件
     */
    @Bean
    public PageInterceptor pageInterceptor() {
        PageInterceptor pageInterceptor = new PageInterceptor();
        Properties props = new Properties();
        props.setProperty("helperDialect", "mysql");
        props.setProperty("reasonable", "true");
        pageInterceptor.setProperties(props);
        return pageInterceptor;
    }
}

3.3 创建Mapper映射类

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM user")
    List<User> getAllUsers();

}

3.4 创建Service类

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> getAllUsers() {
        return userMapper.getAllUsers();
    }

}

3.5 创建Controller类

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

}

4. 示例

4.1 示例1:获取所有用户信息

在浏览器地址栏输入 http://localhost:8080/users 访问接口,即可获取所有用户信息。其中,8080 为端口号,users 为请求路径。

4.2 示例2:根据ID获取用户信息

UserMapper接口中添加以下方法:

@Select("SELECT * FROM user WHERE id=#{id}")
User getUserById(@Param("id") Long id);

UserController中添加以下接口方法:

@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
    return userService.getUserById(id);
}

在浏览器地址栏输入 http://localhost:8080/users/1 访问接口,即可获取ID1的用户信息。

5. 总结

至此,我们已经完成了SpringBoot整合Mybatis与druid的过程,整个流程并不复杂。只需依照以上步骤进行配置,并在Java类中编写相应代码,即可快速搭建一个配置完整的Web应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Mybatis与druid实现流程详解 - Python技术站

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

相关文章

  • Java设计模块系列之书店管理系统单机版(一)

    针对“Java设计模块系列之书店管理系统单机版(一)”,我可以提供以下详细攻略: 一、文章目录 首先,该篇文章具有规范的标题、目录。如下: # Java设计模块系列之书店管理系统单机版(一) ## 目录 1. 需求分析 2. 模块设计 3. 功能模块实现 4. 数据库设计 5. 数据库连接 6. 界面实现 7. 测试 其中,通过使用#和##来表示标题级别,利…

    Java 2023年5月20日
    00
  • mybatis如何设置useGeneratedKeys=true

    要设置useGeneratedKeys=true,需要在mybatis的mapper.xml文件中编写对应的代码。在这之前,需要了解一下什么是自动生成主键(Generated Key)、什么是useGeneratedKeys=true、以及如何使用。 自动生成主键是指在将数据插入到关系数据库中时,主键值可以由数据库自动生成,这种方式可以有效减少数据库的工作量…

    Java 2023年5月20日
    00
  • Java中打乱一个数组的2种公平算法分享

    下面是“Java中打乱一个数组的2种公平算法分享”的完整攻略。 一、算法1:Fisher–Yates算法 1.算法原理 Fisher-Yates算法,又叫Knuth Shuffle算法,使用的是下标随机交换的方法,每次迭代时随机一个在当前位置及以后的位置(包括当前位置)之间的任意一个索引,然后将当前位置与该索引处的元素进行交换。该算法类似于每次从未处理的数据…

    Java 2023年5月19日
    00
  • eclipse修改maven仓库位置的方法实现

    下面我将为您详细讲解“eclipse修改maven仓库位置的方法实现”的完整攻略。 什么是 Maven仓库 Maven是Java项目构建的一种强大工具,而Maven仓库则是Maven的核心功能之一。它是一个本地或远程的存储库,用于存储项目构建所需的依赖库和插件库。够通过Maven仓库中的Jar包来解决项目中的依赖关系,从而完成项目构建。 修改Maven仓库位…

    Java 2023年5月19日
    00
  • 导入项目出现Java多个工程相互引用异常A cycle was detected in the build path of project的解决办法

    当我们在导入一个Java项目时,可能会遇到工程之间相互引用的异常提示:“A cycle was detected in the build path of project”。这种情况下,我们不能正常构建我们的项目,此时我们需要采取一些解决措施。 以下是完整的解决方案: 原因 这个异常通常发生在多个Java工程之间相互引用的情况下。出现这个异常的原因通常是因为…

    Java 2023年5月27日
    00
  • Java中泛型学习之细节篇

    Java中泛型学习之细节篇 泛型擦除 在Java中,泛型实现是基于类型擦除的。 当我们在定义一个泛型类或泛型方法时,编译器会将其中的参数类型替换成Object类型。这意味着,在运行时,我们无法再获取原始的参数类型。 举个例子,下面这个泛型类在编译后会被擦除: public class Generic<T> { private T t; publi…

    Java 2023年5月26日
    00
  • 浅谈SpringMVC+Spring3+Hibernate4开发环境搭建

    下面是关于SpringMVC+Spring3+Hibernate4开发环境搭建的详细攻略,包含两个示例说明。 SpringMVC+Spring3+Hibernate4开发环境搭建 SpringMVC、Spring和Hibernate是Java Web应用程序开发中常用的框架。在本文中,我们将介绍如何将这三个框架整合在一起,并搭建开发环境。 步骤1:添加依赖 …

    Java 2023年5月17日
    00
  • 详解spring面向切面aop拦截器

    下面是我准备的详解Spring面向切面AOP拦截器的攻略。 什么是AOP AOP(Aspect Oriented Programming)是一种编程思想,通过在不影响主业务逻辑的情况下,往程序中添加一些辅助功能和处理逻辑。AOP思想的核心是“切面”(Aspect),切面可以看作是一个包含了若干通用处理逻辑的类,这些通用处理逻辑可以在不同的拦截点上进行重复利用…

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