Java使用idea自动生成CRUD代码

1. 工具准备

在开始使用idea自动生成crud代码之前,需要下载 idea 并且安装相关的插件,我这里使用的 idea 是社区版,所以本文的操作步骤完全可以复现,idea 和 插件的版本如下:

开发工具: IntelliJ IDEA 2022.2.2 (Community Edition)

插件列表:

  • Database Navigator:是针对IntelliJ IDEA社区版用户的一个非常受欢迎的第三方数据库插件,使用此插件的目的是为了在idea中创建表,查看表的数据。
  • MyBatisCodeGenerator:支持定制化生成 entity、mapper、mapperXml、service、serviceImpl、Controller 。
  • MyBatisX:支持 Mapper 和 XML 来回跳转。

其他工具插件列表(提高开发效率):

关于生成 mybatis 代码的插件有很多,试用了下面几个免费的 mybatis 代码生成插件,根据个人的使用体验做出如下总结:

插件名称生成文件易用性(高、中、低)推荐等级(高、中、低)
MyBatis Builderentity、mapper、mapperXml
idea-mybatis-generatorentity、mapper、mapperXml
MybatisHelperProentity、mapper、mapperXml
MyBatisCodeGeneratorentity、mapper、mapperXml、service、serviceImpl、Controller

2. docker安装mysql

步骤1:下载docker

可以直接下载 docker-desktop

步骤2:创建自定义配置文件

首先,在你的主机上创建一个配置文件。例如,你可以创建一个名为my.cnf(或任何你喜欢的名字)的配置文件。这个文件可以放在你的主机上的任何位置,但是为了方便管理,最好将其放在专门的目录下。例如,创建一个目录mysql-config,然后在这个目录下创建my.cnf文件。

# 创建目录
mkdir mysql-config
# 进入创建的目录中
cd mysql-config
# 将自定义的内容写入 my.cnf 文件中,
# 如果命令行没有vim工具,可以使用cat命令将一段文本内容写入文件,如下所示
cat > my.cnf <<EOF
[mysqld]
# 自定义 MySQL 配置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 允许任意远程主机尝试连接到MySQL服务器
bind-address=0.0.0.0
[client]
default-character-set=utf8mb4

EOF

bind-address=0.0.0.0 说明如下:

在MySQL的配置文件中,bind-address参数用于指定MySQL服务器绑定的网络地址。当你在配置文件中设置bind-address=0.0.0.0时,这意味着MySQL服务器将接受在其所有网络接口上的IPv4连接,包括公网和私网的地址。

默认情况下,MySQL服务器可能只监听本地回环接口(localhost,127.0.0.1),这限制了只有在MySQL服务器所在的本地机器上的应用程序才能连接到数据库。通过将bind-address设置为0.0.0.0,它允许任意远程主机尝试连接到MySQL服务器(当然,前提是远程主机的连接请求满足了其他的安全设置,如用户权限、防火墙规则、MySQL用户的host权限等)。

使用0.0.0.0作为bind-address可以提高灵活性,特别是在云和容器环境中,其中网络接口可能会发生变化。但要注意的是,这也可能带来安全风险,因为如果不进行适当的安全保护措施(例如,强密码策略、访问控制列表等),它将允许任意IP地址上的客户端尝试连接到你的MySQL服务器。

步骤3:拉取MySQL镜像

如果你还没有MySQL镜像,可以从Docker Hub拉取最新版的MySQL镜像:

docker pull mysql

步骤4:使用docker run命令启动MySQL容器并挂载配置文件

接下来,使用docker run命令启动一个新的MySQL容器实例,并使用-v(或--volume)参数来挂载你刚刚创建的配置文件到容器中适当的位置。

MySQL镜像默认读取/etc/mysql/conf.d目录下的所有.cnf文件作为额外的配置,所以你可以将主机上的配置文件挂载到这个目录下。

docker run -d \
  --name my-mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -v /path/to/mysql-config/my.cnf:/etc/mysql/conf.d/my.cnf \
  mysql

请将/path/to/mysql-config/my.cnf替换为你my.cnf文件在主机上的实际路径,my-secret-pw换为你想设置的MySQL root用户密码。

这些步骤将启动一个MySQL容器,MySQL会应用你在my.cnf中指定的配置。

步骤5:验证配置

启动容器后,你可以登录到MySQL服务器来验证配置是否被正确应用。

  1. 进入MySQL容器的bash:
docker exec -it my-mysql bash
  1. 登录MySQL:
mysql -u root -p

然后输入你在启动容器时设置的密码。

  1. 一旦登录MySQL,你可以使用SQL命令检查配置:
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';
SHOW VARIABLES LIKE 'bind_address';

这些命令将显示character_set_servercollation_serverbind_address的设置,你应该能看到它们与你在my.cnf中设置的值相匹配。

这样,你就成功地使用自定义配置文件启动了一个MySQL容器。

步骤6:创建数据库

可以使用下面的命令创建一个测试时使用的数据库:

# 创建数据库
create database my_test;
# 查看全部数据库
show databases;

3. 连接数据库

3.1. 安装 Database Navigator 插件

对于IntelliJ IDEA社区版(Community Edition),由于它没有内置的数据库工具,我们可以寻找第三方插件来帮助管理和操作数据库。一个广受欢迎的第三方数据库插件是 Database Navigator

Database Navigator是针对IntelliJ IDEA社区版用户的一个非常受欢迎的第三方数据库插件,它提供了以下功能:

  • 连接到流行的数据库,例如MySQL、PostgreSQL、SQLite等。
  • 浏览数据库架构和对象,如表、视图、索引和存储过程。
  • 执行SQL查询,并且具有基本的自动完成功能。
  • 管理数据记录,能够执行插入、更新和删除操作。
  • 导出和导入数据支持(比如使用SQL脚本或CSV文件)。
  • 支持运行时间较长的数据库操作。
  • 支持通过SSH隧道连接到数据库。

要安装 Database Navigator 插件,请按照以下步骤操作:

  1. 打开IntelliJ IDEA。
  2. 导航到 File | Settings | Plugins
  3. 在插件菜单中,选择 Marketplace 标签页。
  4. 搜索 Database Navigator
  5. 找到该插件,然后单击 Install 按钮。

安装完毕后,重启IDEA使插件生效,然后你就可以开始配置和使用Database Navigator插件来管理数据库了。

3.2. 使用 Database Navigator 插件

Database Navigator 插件安装完成后可以通过如下方式找到:

方式一: IntelliJ IDEA -> view -> Tool Windows -> DB Browser

方式二:在顶部导航栏找到 DB Navigator

点击 + 号新建 MySQL 的连接

填写数据库的 Host 以及用户名密码,并测试连接:

如果测试连接报错,通常有如下几种错误:

  1. 如果这里测试连接报错,请排查是否是用户名和密码错误。
  2. 如果账号没有权限,可以使用下面的命令给账号授权:
# 授权用户在特定数据库上执行任何操作
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';

其中,database_name是数据库名,table_name是表名,username是用户名,host是用户连接的主机名。host可以是一个具体的主机名、IP地址,也可以是%表示任何主机。

记得每次修改权限后执行FLUSH PRIVILEGES;命令使修改生效。

  1. 如果是连接错误,可以使用下面的命令排查是否配置了 bind-address=0.0.0.0(允许外部网络访问):
SHOW VARIABLES LIKE 'bind_address';

这里测试连接数据库成功:

打开 SQL 控制面板,执行建表语句,创建表:

在 SQL 控制面板中使用如下命令创建表:

CREATE TABLE `templates` (
    `template_code` VARCHAR(255) NOT NULL comment '模版code',
    `template_name` VARCHAR(255) NOT NULL comment '模版名称',
    `template_content` TEXT NOT NULL comment '模版内容',
    `template_status` VARCHAR(32) NOT NULL comment '模版状态',
    `template_version` INT NOT NULL comment '模版版本号',
    `comment` TEXT comment '模版备注',
    PRIMARY KEY (`template_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

4. 生成CRUD代码

4.1. 初始化项目

spring boot initializr

使用 spring boot initializr 初始化一个spring boot项目,如下图所示:

使用的 spring boot 项目说明如下:

  • 项目基本结构:MVC
  • 项目框架:spring boot + mybatis

在 com.example.springmybatis 目录下新建四个目录,分别是 controller、dao、entity、service。

  • controller层:负责接收http请求控制。
  • entity层:用于存放实体类,与数据库中的属性值基本保持一致,实现set和get的方法。
  • dao层:用于存放mapper接口,做数据持久层的工作,负责与数据库联络,封装了增删改查基本操作。
  • service层:主要负责业务模块的逻辑应用设计,会调用 dao 层的接口。

4.2. 生成CRUD代码

使用 MyBatisCodeGenerator 插件也可以自动生成 controller、dao、entity、service这几个目录。

安装好插件后,可以在idea顶部导航栏 Tools -> MyBatisCodeGenerator 找到插件,如下图:

需要配置生成文件的路径,如下图所示:

会自动生成controller、dao、entity、service这几个目录(如果是多模块项目,可以选择生成到对应的模块中),如下图所示:

4.3. springboot集成mybatis

springboot 集成 mybatis 可以直接使用 mybatis-spring-boot-starter这个依赖包,mybatis-spring-boot-starter 是一个由 MyBatis 官方提供的库,用于在 Spring Boot 应用中集成 MyBatis。使用这个 starter 可以方便地将 MyBatis 配置成为你的 Spring Boot 应用的一部分,避免了复杂的配置。它自动配置了 MyBatis 的基本组件,并提供了一套默认的设置,可以被覆盖和自定义。

mybatis-spring-boot-starter 提供了以下功能:

  1. 自动配置SqlSessionFactorySqlSessionTemplate
  2. 自动扫描 MyBatis 的映射器(Mapper)接口,并将其注册到 Spring 上下文中。
  3. 提供自定义配置的能力,例如数据源和事务管理。
  4. 减少显式配置的需要;依托 Spring Boot 的自动配置机制,简化了整合过程。

4.3.1. 使用方法

以下是如何在基于 Maven 的 Spring Boot 应用中添加和使用 mybatis-spring-boot-starter 的步骤:

  1. 添加依赖
    在你的项目的 pom.xml 文件中添加 mybatis-spring-boot-starter 的依赖:
<dependencies>
    <!-- 其他依赖 ... -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>3.0.3</version>
    </dependency>
</dependencies>

注意:版本号 3.0.3 只是一个示例,你应使用最新稳定版本。

如果使用底层数据库是mysql,还需要添加 mysql-connector-java 这个依赖:

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.13</version>
		</dependency>

mysql-connector-java 是 MySQL 官方提供的 JDBC 驱动,用于 Java 应用程序与 MySQL 数据库服务器之间的通信。这个库实现了 JDBC(Java数据库连接)API,为 Java 应用程序提供了一种以统一的方式与 MySQL 数据库进行交互的手段。

  1. 配置数据源
    application.propertiesapplication.yaml 中配置你的数据库信息。例如,如果你使用的是 mysql 数据库,在 application.yaml 中配置如下:
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/my_test?useSSL=false&serverTimezone=UTC
    username: root
    password: my-secret-pw
    driver-class-name: com.mysql.cj.jdbc.Driver
  1. 创建 MyBatis Mapper 接口和 XML 映射文件
    创建 MyBatis 的 Mapper 接口,并为它们创建相应的 XML 映射文件。例如,你可能有一个 UserMapper 接口和一个与之对应的 UserMapper.xml 映射文件。
// UserMapper.java
@Mapper
public interface UserMapper {
    User selectUserById(int id);
}
  1. 配置 MyBatis Mapper 扫描路径
    默认情况下,mybatis-spring-boot-starter 会扫描你的应用的所有路径以查找标记有 @Mapper 注解的接口。但是,你可以在 application.propertiesapplication.yaml 中显式指定扫描路径:
mybatis:
  # 扫描实体类的位置,在此处指明扫描实体类的包,在 mapper.xml 中就可以不写实体类的全路径名
  type-aliases-package: com.example.springmybatis.entity
  #指定 mapper.xml 的位置
  mapper-locations:
    - classpath:mapper/*.xml
  1. 运行 Spring Boot 应用
    配置完成后,就可以运行你的 Spring Boot 应用了。mybatis-spring-boot-starter 将自动配置 MyBatis,并将你的 Mapper 接口注册为 Spring Beans,因此你可以像使用其他 Spring Beans 一样注入并使用它们。
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

通过上述步骤,你可以轻松地集成 MyBatis 到你的 Spring Boot 应用中,并开始利用 MyBatis 优雅地访问数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值