IDEA版本的Mybatis逆向工程使用攻略

com.tjcu

MyBatisGeneratorTools

1.0-SNAPSHOT

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.7</maven.compiler.source>

<maven.compiler.target>1.7</maven.compiler.target>

junit

junit

4.11

test

log4j

log4j

1.2.17

org.mybatis

mybatis

3.5.5

org.mybatis.generator

mybatis-generator-core

1.3.7

mysql

mysql-connector-java

8.0.27

org.mybatis.generator

mybatis-generator-maven-plugin

1.3.7

mysql

mysql-connector-java

8.0.27

true

true

4、mysql数据库表的创建

  • 这是一个《数码商城后台管理系统》的数据库表,三张表

– 1、管理员表

CREATE TABLE admin(

a_id INT AUTO_INCREMENT PRIMARY KEY,

a_username VARCHAR(20),

a_password VARCHAR(50)

);

– 查询管理员表

select * from admin;

– 添加管理员

INSERT INTO admin(a_id,a_username,a_password) VALUES(1,‘王恒杰’,‘123456’);

– 2、商品类型表

CREATE TABLE product_type

(

type_id int auto_increment PRIMARY KEY,

type_name varchar(20)

);

– 查询商品类型

select * from product_type;

– 添加数据

insert into product_type(type_name) values(‘手机’);

insert into product_type(type_name) values(‘电脑’);

insert into product_type(type_name) values(‘电视’);

– 3、商品表

create table product_info

(

p_id int auto_increment primary key,

p_name varchar(20),

– 商品规格/简介

p_content varchar(200),

– 价格

p_price int,

– 图片

p_image varchar(200),

– 数量

p_number int,

type_id int,

p_date date,

FOREIGN KEY(type_id) REFERENCES product_type(type_id)

);

– 添加商品

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米Note2’,‘双曲面 黑色 6GB内存 64GB闪存’,2899,‘xmNote2.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘红米Note5A’,‘5.5英寸 粉色 2GB内存 16GB闪存’,699,‘hmNote5A.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘红米Note4X’,‘5.5英寸 绿色 4GB内存 64GB闪存’,1299,‘hmNote4X.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘红米4’,‘5英寸 金色 3GB内存 32GB闪存’,999,‘hm4.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘红米4X’,‘5英寸 黑色 3GB内存 32GB闪存’,899,‘hm4X.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米平板3’,‘7.9英寸 金色 4GB内存 64GB闪存’,1499,‘xmPad3.jpg’,500,2,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米Air12’,‘12.5英寸 银色 4GB内存 128GB闪存’,3599,‘xmAir12.jpg’,500,2,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米Air13’,‘13.3英寸 银色 8GB内存 256GB闪存’,4999,‘xmAir13.jpg’,500,2,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米Pro’,‘15.6英寸 灰色 16GB内存 256GB闪存’,6999,‘xmPro.jpg’,500,2,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米电视4’,‘49英寸 原装LG屏 3840×2160 真4K’,3299,‘xmTV4-49.jpg’,500,3,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米电视4’,‘55英寸 原装三星屏 3840×2160 真4K’,3999,‘xmTV4-55.jpg’,500,3,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米电视4’,‘65英寸 原装三星屏 3840×2160 真4K’,8999,‘xmTV4-65.jpg’,500,3,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米电视4A’,‘43英寸 FHD全高清屏 1920*1080’,1999,‘xmTV4A-43.jpg’,500,3,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米电视4A’,‘49英寸 FHD全高清屏 1920*1080’,2299,‘xmTV4A-49.jpg’,500,3,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米MIX2’,‘全陶瓷 黑色 8GB内存 128GB闪存’,4699,‘xmMIX2.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米Note3’,‘全网通 蓝色 6GB内存 64GB闪存’,2499,‘xmNote3.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米6’,‘玻璃金属 白色 6GB内存 128GB闪存’,2899,‘xm6.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米MAX2’,‘全金属 金色 4GB内存 64GB闪存’,1599,‘xmMAX2.jpg’,500,1,NOW());

insert into product_info(p_name,p_content,p_price,p_image,p_number,type_id,p_date) values(‘小米5X’,‘全金属 金色 4GB内存 64GB闪存’,1499,‘xm5X.jpg’,500,1,NOW());

– 查询商品

select * from product_info;

– 删除原始的商品数据

delete from product_info;

数据库名: digitalmall

文档描述: 该项目总共有三张表分别是管理员,商品信息,商品类别

| 表名 | 说明 |

| — | — |

| admin | 管理员表 |

| product_info | 商品信息 |

| product_type | 商品类别 |

  • admin``表结构

  • product_info 表结构

  • product_type 表结构

二、Mybatis逆向工程开发

==================================================================================

1、 逆向工程配置文件的开发(generatorConfig.xml)

用来配置指定数据库和表

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

<jdbcConnection driverClass=“com.mysql.cj.jdbc.Driver”

connectionURL=“jdbc:mysql://localhost:3306/digitalmall?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true”

userId=“root”

password=“root”>

<javaModelGenerator targetPackage=“com.tjcu.entity”

targetProject=“src/main/java”>

<javaClientGenerator type=“XMLMAPPER”

targetPackage=“com.tjcu.dao”

targetProject=“src/main/java”>

2、日志文件(log4j.properties)

  • 没有什么作用,就是为了控制台打印日志,复制进项目就可以了

log4j.rootLogger=DEBUG, stdout

SqlMap logging configuration…

log4j.logger.com.ibatis=DEBUG

log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG

log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG

log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG

log4j.logger.com.ibatis.common.util.StopWatch=DEBUG

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

log4j.logger.java.sql.ResultSet=DEBUG

Console output…

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

3、添加主程序运行项目:

  • 使用主程序运行来生成逆向工程:

package com.tjcu.Tools;

import org.mybatis.generator.api.MyBatisGenerator;

import org.mybatis.generator.config.Configuration;

import org.mybatis.generator.config.xml.ConfigurationParser;

import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;

import java.util.ArrayList;

import java.util.List;

/**

  • @author 王恒杰

  • @version 1.0

  • @date 2021/10/26 19:46

  • @email 1078993387@qq.com

  • @Address 天津

  • @Description: Mybatis的逆向工程

*/

public class GeneratorSqlmap {

public void generator() throws Exception {

List warnings = new ArrayList();

boolean overwrite = true;

//指定 逆向工程配置文件

File configFile=new File(GeneratorSqlmap.class.getResource(“/generatorConfig.xml”).getFile());

ConfigurationParser cp = new ConfigurationParser(warnings);

Configuration config = cp.parseConfiguration(configFile);

DefaultShellCallback callback = new DefaultShellCallback(overwrite);

MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,

callback, warnings);

myBatisGenerator.generate(null);

}

public static void main(String[] args) throws Exception {

try {

GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();

generatorSqlmap.generator();

} catch (Exception e) {

e.printStackTrace();

}

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

写在最后

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

Mybatis面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

MySQL面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

并发编程面试专题

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
以上Java开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

[外链图片转存中…(img-BcXjoX2L-1713858896018)]

写在最后

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

[外链图片转存中…(img-VkGvWT6z-1713858896018)]

Mybatis面试专题

[外链图片转存中…(img-mNyd1DPI-1713858896018)]

MySQL面试专题

[外链图片转存中…(img-IQQIDYqF-1713858896019)]

并发编程面试专题

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值