SpringBoot快速整合Mybatis、MybatisPlus(代码生成器)实现数据库访问功能

SpringBoot整合Mybatis

1.引入依赖

pom.xml中引入以下依赖:

<!-- SpringBoot整合Mybatis依赖 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

<!-- MySQL数据库驱动依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

2.配置数据源

application.properties中添加以下配置:

# 配置数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

# 配置Mybatis
mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml

3.创建Mapper

@Repository
@Mapper
public interface UserMapper {

    /**
     * 查询所有用户
     */
    List<User> selectAll();
}

4.编写Service

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 查询所有用户
     */
    public List<User> selectAll() {
        return userMapper.selectAll();
    }
}

5.编写Controller

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

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User> userList() {
        return userService.selectAll();
    }
}

SpringBoot整合MybatisPlus

1.引入依赖

pom.xml中引入以下依赖:

<!-- SpringBoot整合MybatisPlus依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.0.6</version>
</dependency>

<!-- 权限管理框架Shiro依赖 -->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-all</artifactId>
    <version>1.7.1</version>
</dependency>

2.配置数据源

application.properties中添加以下配置:

# 配置数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/plus_demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

# 配置MybatisPlus
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity

3.创建Mapper

mapper包下创建UserMapper.java文件:

@Repository
public interface UserMapper extends BaseMapper<User> {
}

4.编写Service

service包下创建UserService.java文件:

@Service
public class UserService extends ServiceImpl<UserMapper, User> {

    /**
     * 查询所有用户
     */
    public List<User> selectAll() {
        return list();
    }
}

5.编写Controller

controller包下创建UserController.java文件:

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

    @Autowired
    private UserService userService;

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

MybatisPlus代码生成器示例

1.引入依赖

pom.xml中引入以下依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.0.8</version>
</dependency>

2.配置代码生成器

generator包下创建CodeGenerator.java文件:

public class CodeGenerator {

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("your name");
        gc.setOpen(false);
        gc.setSwagger2(true);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus_demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.example.demo");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        pc.setController("controller");
        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        strategy.setControllerMappingHyphenStyle(true);
        mpg.setStrategy(strategy);

        // 执行生成
        mpg.execute();
    }
}

3.执行生成代码

CodeGenerator类上右键点击Run Code Generator.main(),即可生成代码。生成的代码包括各个层级的文件,可以根据需要进行删减或修改。

4.使用生成的代码

使用前需要修改application.properties文件中的Mapper文件路径:

mybatis-plus.mapper-locations=classpath:mapper/*.xml,classpath:mapper/auto/*.xml

使用生成的代码,可以直接调用父类中的方法:

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

    @Autowired
    private UserService userService;

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

以上就是SpringBoot整合Mybatis、MybatisPlus实现数据库访问功能的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot快速整合Mybatis、MybatisPlus(代码生成器)实现数据库访问功能 - Python技术站

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

相关文章

  • Java switch 语句如何使用 String 参数

    Java中的switch语句通常用于针对不同的情况执行不同的操作,常用于替代多个if-else语句的情况。在早期版本中,switch语句只支持整数和枚举类型的参数,但从Java 7版本开始,可以使用字符串参数。下面详细描述如何在Java switch语句中使用字符串参数: 1. switch语句如何使用String类型的参数 为了使用字符串参数,可以在Jav…

    Java 2023年5月27日
    00
  • 解决Springboot启动报错:类文件具有错误的版本61.0,应为 52.0

    这个问题一般是由于我们使用了java版本比当前springboot版本所支持的版本还要高的原因导致的。下面详细讲解一下解决步骤。 确认java版本和springboot版本 首先需要确认当前java版本和springboot版本是否匹配。可以在命令行中输入以下命令查看java版本: java -version 可以在pom.xml文件中查看springboo…

    Java 2023年6月2日
    00
  • Java 11/JDK 11正式发布 支持期限至2026年9月(附下载)

    Java 11/JDK 11正式发布 支持期限至2026年9月(附下载)攻略 什么是Java 11/JDK 11? Java 11,也称作JDK 11 (Java Development Kit 11),是由Oracle公司于2018年9月发布的Java版本之一。JDK是一个开发环境,其中包含了Java编译器和运行时环境,可以用于开发、编译、运行Java程序…

    Java 2023年5月19日
    00
  • Java实现手写一个线程池的示例代码

    下面我将为您介绍Java实现手写一个线程池的示例代码的完整攻略。 什么是线程池 线程池是一种多线程处理的方式,它能够提高系统的处理性能,避免过多的线程频繁创建和销毁的开销,从而提高了系统对并发处理的支持能力。 线程池由三个部分组成:任务队列、线程池管理器和工作线程。其中,任务队列用于缓存待处理的任务,待线程池管理器分配线程后,工作线程就可以从任务队列中取得任…

    Java 2023年5月18日
    00
  • Java cglib为实体类(javabean)动态添加属性方式

    Java cglib是一个强大的代码生成库,它可以在运行时创建Java类的动态代理。借助cglib,我们可以为实体类动态添加属性。以下是添加实体类属性的详细攻略: 步骤一:添加cglib依赖 在项目的pom.xml中添加cglib依赖: <dependency> <groupId>cglib</groupId> <a…

    Java 2023年6月15日
    00
  • java获取文件编码,jsoup获取html纯文本操作

    获取文件编码: 在使用Java查看文件的编码时,可以通过两种方式来获取文件的编码:使用Java内部库获取、使用第三方工具库获取。 使用Java内部库获取文件编码 Java内部库中,提供了获取文件编码的方式:使用InputStreamReader类的getEncoding()方法获取文件编码。以下是示例代码: public static String getF…

    Java 2023年5月19日
    00
  • JSP页面中如何用select标签实现级联

    要在JSP页面中使用select标签实现级联,可以遵循以下步骤: 确定级联关系 在使用select标签实现级联前,需要确定级联关系,即第一个下拉框的选择决定了第二个下拉框的选项。例如,第一个下拉框选择区域,第二个下拉框选择该区域的城市。 创建第一个下拉框 使用HTML的select标签创建第一个下拉框,并给每个选项赋值。例如,在第一个下拉框里,我们可以创建几…

    Java 2023年6月15日
    00
  • 详解基于spring多数据源动态调用及其事务处理

    我来详细讲解一下“详解基于Spring多数据源动态调用及其事务处理”的完整攻略。 1. 简介 本文将介绍如何在Spring框架下使用多数据源,并实现动态选择数据源,同时还将解决数据源切换后事务处理的问题。 2. 多数据源配置 在Spring中,可以通过配置多个DataSource来实现多数据源的支持。以下是一个简单的配置示例: <bean id=&qu…

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