Java通过数据库表生成实体类详细过程

目录
  • 项目背景
  • 项目代码
  • 使用说明
    • 配置相关
    • swagger操作
    • 目前的缺点

项目背景

最近在做的项目,涉及到数据库的操作了,之前做的是直接调用接口,不用做存库操作。

因此要增加大量特殊格式的实体类。比如我们用的是 JPA ,要增加一些注解,额外还有 lombok 的一些注解。

所以,这个项目的目的是,根据数据库中的某张表,生成与之对应的实体类。使用的技术是Freemarker 模板引擎,自定义了实体的模板。

最终的目标是,生成实体类的内容即可。有需要的朋友,可以改改,直接生成java文件。我这里觉得 使用 swagger 生成代码,放到最终的响应里,也是很不错的。

使用的是 Java 11 版本,用到的技术有 lombok,swagger,springboot,spring-data,freemarker,druid。

项目代码

项目代码托管在以下位置。各位可以直接 pull 下来,运行。需要注意的是,改数据库连接。

https://gitee.com/fengsoshuai/generate-entity-from-table

使用说明

配置相关

在 application.yml 文件中配置好自己的数据库。

随后启动 GenerateEntityFromTableApplication 类。

控制台会输出:

Application 'GenerateEntity' is running! Access URLs:
    Local:         http://localhost:80
    External:     http://192.168.1.2:80
    Doc:     http://192.168.1.2:80/doc.html

访问最后一行 Doc 对应的连接地址。会进入 swagger 的测试界面。

swagger操作

输入参数后,点击发送按钮,在响应结果中会带出你想要的结果,比如:

package org.feng.entity;
import lombok.Data;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
/**
 * 宝宝写的一实体类
 *
 * @version v2.0
 */
@Data
@Table("student")
public class StudentData {
    @Column("id")
    private Integer id;
    @Column("name")
    private String name;
    @Column("age")
    private Integer age;
    @Column("weight")
    private Double weight;
    @Column("height")
    private Double height;
    @Column("modified")
    private LocalDateTime modified;
}

目前的缺点

目前的缺点是,没有对LocalDateTime 等特殊类型做兼容,需要手动导入包。

以上的实体类,是从数据库表中查 student 表,生成的。

我的数据表结构是:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(0) NULL DEFAULT NULL,
  `weight` double NULL DEFAULT NULL,
  `height` double NULL DEFAULT NULL,
  `modified` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0),
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

到此这篇关于Java通过数据库表生成实体类详细过程的文章就介绍到这了,更多相关Java数据库表生成实体类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java读取数据库表的示例代码

    目录 Java读取数据库表 新手引导 Logger Connection ResultSet ResultSet中next()方法 name和comment Java读取数据库表 package com.easycrud.builder; import com.easycrud.utils.PropertiesUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.*; /** * @Belo

  • Java游戏服务器之数据库表存取封装

    项目涉及的数据库表并不多,但每个select.insert.update和delete都去手动拼接字符串,是很低效的,尤其在时常要修改结构的情况下.开发的一个目标就是自动化,即能自动实现的事情就不要手动去做:还有一个原则是单一化,即尽量保证数据或逻辑一个入口一个出口.这个需求可以使用一些开源库解决,但因为需求简单,目标明确,没有必要引入多余的第三方库.于是自己写了一个,至少满足当前需求. 数据库表的封装,核心类有两个,表(Table)和记录(Record).首先需要一个Table类保存数据库表结

  • 利用JAVA反射,读取数据库表名,自动生成对应实体类的操作

    本代码是利用java反射,读取数据库表自动根据表名生成实体类,数据库采用老牌SQLSERVER 2000,驱动为JTDS,其他数据库可根据情况自定修改. 代码中包含了大部分数据库类型与JAVA类型的转换,少数未包含进去的会在生成代码时打印出来,方面后期查找修改. import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.sq

  • 基于java线程池读取单个SQL数据库表

    任务:基于线程池来操作MySQL,测试单台机器读写MySQL单表的效率. 思路:创建一个大小合适的线程池,让每个线程分别连接到数据库并进行读取输出操作. 连接到数据库 import java.sql.DriverManager; import java.sql.SQLException; import com.mysql.jdbc.Statement; public class TEXT { } class MySQLOpen { private Connection con = null; p

  • java代码获取数据库表里数据的总数操作

    在访问数据库时,特别是新手,可能会需要查询表中数据总数,以下这段代码可以非常简便的获取到数据数目 //先建立数据库连接,执行查询语句 Connection conn = DriverManager.getConnection(URL, USER, PassWord); Statement st=conn.createStatement(); ResultSet rs =st.executeQuery("select count(*) as result from tablename")

  • 如何让java只根据数据库表名自动生成实体类

    根据数据库表名生成实体类 公司用的jpa,没有用mybatis.所以也没有用mybatis自动生成.但有些数据库表字段太多,就想着一劳永逸了,连数据库注释都搞上去 第一种 这里使用的是jdbcTemplate+Junit测试生成,方式可变. SpringBoot版本是2.4.4,只需要加上@SpringBootTest就可以了.不用@RunWith pom: <dependency> <groupId>org.springframework.boot</groupId>

  • springBoot下实现java自动创建数据库表

    SpringBoot环境启动项目创建数据库表 使用环境 windows+eclipse+mysql+navicat 步骤 1.创建SpringBoot项目 2.新建数据库,配置连接信息 3.编写初始化数据库表类 4.运行查看结果 1.创建SpringBoot项目 关于如何创建SpringBoot项目不再详细描述,只要创建一个可以运行的SpringBoot项目就行. 2.新建数据库,配置连接信息 2.1 新建数据库 打开Navicat新建一个Mysql连接(连接信息如用户名,密码记好,下面配置连接

  • mybatis plus generator 根据数据库自动生成实体类的实现示例

    目录 1.添加依赖 2.编写代码生成器 3.运行主程序,输入表名 1.添加依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId&g

  • Mybatis如何自动生成数据库表的实体类

    第一步引入jar 第二步,配置文本文件 # 数据库驱动jar 路径 本地创库的包 drive.class.path=C:/Users/Administrator/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar # 数据库连接参数 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://192.168.1.188:3306/sxh

  • Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程)

    第一步:新建一个Maven项目.项目的名称为JpaDemo. 我这里是通过idea插件对应的spring项目生成器https://start.spring.io,直接生成项目.如图: 下一步,修改成对应项目的基本信息.如图: 选择相应的依赖jar包. 选择项目的位置 完成创建 温馨提示,之前需要安装好maven. 第二步:配置数据库连接. 选择Mysql. 配置数据库基本信息 其实配置了这个数据库连接之后,是可以直接通过脚本进行导出数据库实体类了,但是这个导出的实体类比较简陋,需要进行修改比较多

  • 如何用nodejs给C#写一个数据表的实体类生成工具

    虽然微软提供了T4模板,但是我感觉非常难用.哪儿比得上直接用脚本来写模板来的爽. 因为要给一个老项目做周边的工具,需要连接到数据库. 我习惯性用EntityFrameworkCore来做,因为毕竟从出道开始就一直在用的一个ORM. EF6时代,vs提供了dbfirst,但是只是针对sqlserver好像. 因为这次的数据库是MySQL,所以vs很多东西都支持不够了. 但是支持不够就自己动手丰衣足食嘛. 我们使用ejs这个模板引擎来做生成器. npm install ejs 然后用查询出表结构:

  • Mybatis通过数据库表自动生成实体类和xml映射文件

    环境:maven+idea. 1. 需要的jar包 基本的spring和mybatis依赖包就不说了,在pom文件的build->plugins节点下需要添加(两个依赖包也可以直接添加到pom的依赖里面去,这里是为了直接通过maven的插件来生成.如果不是使用maven,自行百度下): <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-mave

  • IDEA MyBatis Plugins自动生成实体类和mapper.xml

    前言 如何下载和使用MyBatis Generator 插件,只说代码,不讲感情.如果有问题还请多多指点. 开发环境 开发工具:IntelliJ IDEA 2018.1.1 x64 dk版本:1.8.0_171 工程构建工具:maven 版本3.2.5 数据库 mysql IDEA 下载MyBatis Generator 插件 1.首先在File--Settings--点击Plugins,搜索框中搜索mybatis,选择mybatis-plugins,点击安装(由于我的已经安装过,所以没有绿色的

  • java通过cglib动态生成实体bean的操作

    maven依赖: <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>cglib</groupId> <artifa

  • ASP.NET中实现根据匿名类、datatable、sql生成实体类

    在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类    为了解决上面的不便之处,我封装了一个实体生成类,可以扔到程序里面任意调用 封装类: using System; using System.Collections.Generic; using System.

  • django如何根据现有数据库表生成model详解

    目录 一,在setting.py中配置好连接数据库的参数 二,打开cmd或pycharm的Terminal输入命令 三,managed = False 删除或改为 managed = True 四,执行迁移 补充:Django根据数据库表反向生成Model 总结 题记:django如果要并和原有的数据库,那么就需要把现有数据库的表写入model.py中. 一,在setting.py中配置好连接数据库的参数 在setting中的DATABASESZ中配置默认参数,并在INSTALLED_APPS中

随机推荐