MBG(Mybatis-Generator)生成代码

目录

步骤:

1. 创建数据库表

2. 配置 MyBatis Generator

3. 运行 MyBatis Generator

4. 编写业务逻辑



在实际开发中,你会发现有很多重复的工作:

首先是PO对象,我们往往创建与数据库表字段一一对应的PO对象;

其次在Mapper里,通常都会写基本的增删改查代码。

解决这个问题,我选择MyBatis Generator, MyBatis Generator是一个用于生成 MyBatis 持久层代码的工具。以下是一个简单的使用 MyBatis Generator 生成代码并编写相应业务逻辑的示例。这个示例假设你已经有一个数据库,并已经准备好了 MyBatis Generator 的配置文件。

步骤:

1. 创建数据库表

在数据库中创建一个表,例如 user 表:

CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50),password VARCHAR(50)
);
2. 配置 MyBatis Generator

创建 MyBatis Generator 的配置文件 generatorConfig.xml,定义生成器的配置。这个文件通常包含数据库连接信息、生成的代码的目标包路径、表映射等配置。

<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
​
<generatorConfiguration><context id="DB2Tables" targetRuntime="MyBatis3"><commentGenerator><property name="suppressAllComments" value="true" /></commentGenerator>
​<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/your_database"userId="your_username"password="your_password"></jdbcConnection>
​<javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver>
​<javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator>
​<sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources"><property name="enableSubPackages" value="true" /></sqlMapGenerator>
​<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java"><property name="enableSubPackages" value="true" /></javaClientGenerator>
​<table tableName="user" domainObjectName="User" /></context>
</generatorConfiguration>

替换其中的 your_databaseyour_usernameyour_password 为你的数据库信息。

3. 运行 MyBatis Generator

在命令行中执行以下命令,运行 MyBatis Generator:

java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite

这里的 mybatis-generator-core-x.x.x.jar 是 MyBatis Generator 的 JAR 文件,版本号根据实际情况替换。

4. 编写业务逻辑

com.example.model 中生成的 User 类,以及 com.example.mapper 中生成的 UserMapper 接口和对应的 XML 文件。

编写业务逻辑的示例:

// User.java
package com.example.model;
​
public class User {private Integer id;private String username;private String password;
​// 省略getter和setter
}
​
// UserMapper.java
package com.example.mapper;
​
import com.example.model.User;
​
public interface UserMapper {int insert(User record);User selectByPrimaryKey(Integer id);// 其他自动生成的方法
}
​
// UserService.java
package com.example.service;
​
import com.example.mapper.UserMapper;
import com.example.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
​
@Service
public class UserService {
​private final UserMapper userMapper;
​@Autowiredpublic UserService(UserMapper userMapper) {this.userMapper = userMapper;}
​public void addUser(User user) {userMapper.insert(user);}
​public User getUserById(Integer id) {return userMapper.selectByPrimaryKey(id);}
}

这是一个简单的示例,具体业务逻辑根据实际需求进行扩展。通过 MyBatis Generator 自动生成的代码,你可以轻松地进行数据库访问和操作。

推荐一篇比较详细的文章:5.6 Mybatis代码生成器Mybatis Generator (MBG)实战详解-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492487.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电机仿真】HFI算法脉振高频电压信号注入观测器-PMSM无感FOC控制

【电机仿真】HFI算法脉振高频电压信号注入观测器-PMSM无感FOC控制 文章目录 前言一、脉振高频电压注入法简介&#xff08;注入在旋转坐标系的d轴&#xff09;1.旋转高频电压&#xff08;电流&#xff09;注入法2.脉振高频电压注入法 二、高频注入理论1.永磁同步电机的高频模型2…

java spring 01 IOC源码

01.spring 中的基础是IOC 中有一个方法 例子&#xff1a; 01. 02. 03. 这里是扩展方法&#xff0c;现在是空的 beanfactorypostprocessors&#xff1a; 国际化&#xff1a;&#xff08;一般不管&#xff09; 广播器: 监听器&#xff1a; 实例化&#xff1…

Day03-课后练习(流程控制_分支结构)(判断年、月、日是否合法,判断打鱼还是晒网,判断星座)

参考答案博客链接跳转 文章目录 巩固题1、从键盘输入一个整数&#xff0c;判断它是否是5的倍数2、从键盘输入一个字符&#xff0c;判断字符类型3、计算折扣后金额4、输出月份对应的英语单词5、计算今天是星期几 简答题拔高题&#xff08;自愿&#xff09;6、判断年、月、日是否…

使用Node.js和Vue.js构建全栈Web应用

随着互联网的迅速发展&#xff0c;Web应用程序的开发变得越来越复杂和多样化。为了满足用户不断变化的需求&#xff0c;全栈开发已成为一个备受关注的话题。在本篇博客中&#xff0c;我将介绍如何使用Node.js和Vue.js来构建全栈Web应用。 Node.js是一个基于Chrome V8引擎的Jav…

Vue.js+SpringBoot开发大学兼职教师管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管理3.3 课程管理模块3.4 授课管理模块3.5 课程考勤模块3.6 课程评价模块3.7 课程成绩模块3.8 可视化图表 四、免责说明 一、摘要 1.1 项目介绍 大学兼职教师管理系统&#xff0c;旨…

TongWEB(东方通),部署WEB前后端项目步骤

我的系统: 银河麒麟桌面系统V10(SP1)(兆芯) 环境需要搭建好,什么redis,数据库等 1.准备项目前端war包 (我后端项目本就是war部署,jar转war自行百度一下吧) 进入前端打包好的dist文件夹,创建一个文件夹 WEB-INF ,再在 WEB-INF 里创建一个 web.xml 文件,文件内容: <web-…

小家电—简易过零检测电路

趁刚开工时间有空&#xff0c;总结分析下&#xff0c;在工作项目中常用过零检测电路。 图一 图二 图一在项目中较为常用&#xff0c;两个电路都是通过钳位二极管限幅产生过零脉冲信号。 过零信号高电平被钳位在5.7V&#xff0c;低电平为-0.7V 高电平&#xff1a;VCC0.7V 低电…

猜测了一个sora模型结构

如果是上述的这种结构&#xff0c;可以确定的是patch 的size &#xff08;一个图像的小片&#xff09;是固定大小的 那么调节一个视觉分辨率大小通过patchs的大小决定。 如图所示可以证明输入的时候图片没有本物理人为的分割为小片&#xff0c;是通过一个模型进行分割为 小片。…

如何通过信息化系统降低连锁品牌企业的财务成本

最近身边几个做连锁品牌的朋友问&#xff0c;能不能通过信息化系统降低连锁管理门店的财务成本&#xff0c;让整体的运营合法合规&#xff0c;降低税收成本。今天商淘云和大家分享如何通过信息化系统降低连锁管理门店的财务成本。 传统的连锁门店是大家自动核对账目&#xff0c…

前后端项目宝塔linux部署(springboot,vue,python)

宝塔linux安装就省略了&#xff0c;网上一堆 1.部署后端 1.首先把自己项目里面打包好的的jar包上传到服务器随便一个地方&#xff0c;我这里就上传到www/wwwroot下面了&#xff0c;宝塔的文件页面可以很便携上传 2.然后到下面这个页面 选那个java环境管理装个jdk&#xff…

双向循环链表防断裂下的指针指向

已知有一个带有表头结点的双向循环链表L&#xff0c;结点结构为 prevdatanext 其中&#xff0c;prev和next分别是指向其直接前驱和直接后继结点的指针。现要删除指针p所指的结点&#xff0c;正确的语句序列是&#xff08; &#xff09;。 A.p->next->prevp->…

教你 3 分钟用 Hexo 建立一个纯静态、高性能的个人博客

只要会使用命令行&#xff0c;执行简单的命令。那么&#xff0c;用 Hexo 建立一个个人博客的过程&#xff0c;称得上是轻松愉快且简单&#xff01; 我会以 Mac 操作系统作为例子&#xff0c;因为在 Mac 上实现这一切更为简单&#xff0c;因为 Mac 操作系统的命令行环境相对来说…