生活不易、且行且珍惜。网站首页 程序人生
从零开始做网站3-数据库表创建以及使用mybatis逆向工程
发布时间:2022-05-17 21:36编辑:zj 阅读:文章分类: 网站互动QQ群:170915747
数据库表设计遵循三大范式,根据实际的需求来建。。目前建的表足够后台各功能和发文章啥的了,其他的就等后面在慢慢了。
数据库搭建完了,就是要写sql和实体映射了,一个一个的写就太麻烦了,用mybatis的逆向工程可以解决这个麻烦~
逆向工程:
MyBatis Generator,简称MBG, 是一个专为MyBatis框架使用者定制的代码生成器,可以提高开发效率快速的根据表生成对应的mapper.xml(配置文件)、mapper.java(接口)、表名.java(pojo类、Javabeen)类。支持基本的增删改查,以及QBC风格的条件查询,但是表连接,存储过程等这些复杂sql的定义需要我们手工编写, 在开发阶段根据表结构创建对应的pojo类。mybatis逆向工程的方向:由数据库表 —>java代码
官方文档地址: http://www.mybatis.org/generator/
官方工程地址: https://github.com/mybatis/generator/releases
然后就是开搞:
1.在pom文件下添加所需的依赖
<!--springboot整合mybatis的依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- MyBatis逆向工程, 逆向工程主要使用这个依赖 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.6</version> </dependency> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <!-- mybatis用于生成代码的配置文件 --> <configurationFile>src/main/resources/generator/GeneratorMapper.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin>
配置文件application.properties参考前面文章无需改动,需要注意的是,src/main/resources/generator/GeneratorMapper.xml中的内容一定要写generatorConfig.xml从src开始的全路径,因为在执行逆向工程的时候会根据这个路径去读取GeneratorMapperxml中的配置。
2.添加逆向工程配置文件GeneratorMapper.xml,以下是文件内容(提示部分按情况修改)和目录结构
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包,直接idea External Libraries找到右键打开所在位置即可--> <classPathEntry location="C:\Users\zj\.m2\repository\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar"/> <context id="testTables" targetRuntime="MyBatis3"> <!-- JavaBean 实现 序列化 接口 --> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <!-- 生成toString --> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> <!-- 是否去除所有自动生成的文件的时间戳,默认为false --> <property name="suppressDate" value="true"/> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 复制配置文件的即可--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://***/***" userId="***" password="***"> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- targetProject:生成POJO类的位置 --> <javaModelGenerator targetPackage="com.zjlovelt.entity" targetProject="src/main/java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> <!-- 默认false 是否对model添加 构造函数 --> <property name="constructorBased" value="false"/> <!-- 默认false 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 --> <property name="immutable" value="false"/> <!-- 默认false 是否对类CHAR类型的列的数据进行trim操作 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper.xml映射文件生成的位置 需修改--> <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 需修改--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.zjlovelt.mapper" targetProject="src/main/java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!-- 指定数据库表 tableName是数据库中的表名 domainObjectName是实体类名--> <!-- 这里多了几个属性,主要是阻止生成example类(用不到) enableCountByExample : 是否生成查询总数的 Example enableDeleteByExample : 是否生成删除的 Example enableSelectByExample : 是否生成查询集合的 Example enableUpdateByExample : 是否生成修改的 Example--> <!--用户表--> <table tableName="sys_user" domainObjectName="SysUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> <!--权限表--> <table tableName="sys_group" domainObjectName="SysGroup" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
这些配置可以直接拷过去,每一行配置上都有注释,把需要改的改成自己的即可;
配置完了之后,我们就可执行逆向工程了,点击右侧的Maven,左上角先刷新下,就能看到下面的结构,然后找到mybatis-generator,双击运行即可
控制台出现以下的样子,就成功了
现在可以来看看效果,会发现User.java、UserMapper.java、UserExample.java这三个文件都已经生成好了
基本的增删改查都有了后面再根剧需求加一些sql就好了,节省了不少时间啊,要自己一个表一个表的写累死~~
最后,开发计划更新~~ 后面会一直更新开发计划,因为文章是在开发时写的,而发布是在后面,所以文章发布时间会比实际开发和写文章的日期要晚点。
#去评论一下
标签:#Springboot#Vue
版权声明:本博客的所有原创内容皆为作品作者所有
转载请注明:来自ZJBLOG 链接:www.zjhuiwan.cn
「万物皆有时,比如你我相遇」
感谢大佬打赏【请选择支付宝或微信,再选择金额】
使用微信扫描二维码完成支付