# JG-ALL **Repository Path**: xsxgit/JG ## Basic Information - **Project Name**: JG-ALL - **Description**: 一个基于JDK1.7,简单易用的、无任何依赖的数据库表-Java类自动生成器,可由数据库表自动生成Java类或由Java类自动生成数据库表。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 2 - **Created**: 2017-09-05 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: code-generator, database-dev **Tags**: None ## README # 版本 当前最新版本为 **1.2.1** ![Version](https://img.shields.io/badge/Version-1.2.1-brightgreen.svg) ![License](http://img.shields.io/:License-Apache2.0-blue.svg) ![JDK 1.7](https://img.shields.io/badge/JDK-1.7-green.svg "JDK 1.7") # 简介 一个 **简单易用**、**无任何依赖** 的数据库表-Java类自动生成器,可由数据库表自动生成Java类或由Java类自动生成数据库表。 目前已支持 **MySQL** 、**Oracle** 、**SQL Server** 、**PostgreSQL** 等数据库。 # 驱动名称及数据库地址形式 ### MySQL ``` driverClassName: "com.mysql.jdbc.Driver"(6.0.x以下) "com.mysql.cj.jdbc.Driver"(6.0.x及以上,需要JDK1.8及以上) dbUrl: "jdbc:mysql://127.0.0.1:3306/test" ``` ### Oracle ``` driverClassName: "oracle.jdbc.OracleDriver" dbUrl: "jdbc:oracle:thin:@//127.0.0.1:1521/orcl" ``` ### SQL Server ``` driverClassName: "com.microsoft.sqlserver.jdbc.SQLServerDriver"(2005版本及以后) "com.microsoft.jdbc.sqlserver.SQLServerDriver"(2000版本) dbUrl: "jdbc:sqlserver://127.0.0.1:1433;databasename=test"(databasename=XXX需放在最后) ``` ### PostgreSQL ``` driverClassName: "org.postgresql.Driver" dbUrl: "jdbc:postgresql://127.0.0.1:5432/test" ``` # MAVEN地址 ``` wiki.xsx JG-All 1.2.1 ``` # 使用方法 调用Generator.createXXX生成对应的数据表或Java类。 示例: ``` import wiki.xsx.jg.main.Generator; /** * 测试 */ public class Test { public static void main(String[] args) throws Exception{ // 数据库驱动名称 final String driverClassName = "com.mysql.jdbc.Driver"; // 数据库地址 final String dbUrl = "jdbc:mysql://127.0.0.1:3306/test?zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true&characterEncoding=utf-8"; // 数据库用户名 final String userName = "root"; // 数据库用户密码 final String password = "root"; // 包所在的根路径 final String rootPath = "F:\\Test"; // Java类所在的完整包名 final String packageName = "com.xsx.test"; // 需要生成的Java类所对应的数据表名称 final String tableNames = "test1,test2,test3"; // 需要生成的数据表所对应的Java类名称 final String classNames = "Test1,Test2,Test3"; // 按照数据表生成Java文件 Generator.createFiles(tableNames, driverClassName, dbUrl, userName, password, rootPath, packageName); // 按照数据库中所有表生成Java文件 Generator.createFiles(driverClassName, dbUrl, userName, password, rootPath, packageName); // 按照Java类生成数据表 Generator.createTables(classNames, driverClassName, dbUrl, userName, password, rootPath, packageName); // 按照包下所有Java类生成数据表 Generator.createTables(driverClassName, dbUrl, userName, password, rootPath, packageName); } } ``` 简单Java类: ``` import wiki.xsx.jg.annotation.Id; import wiki.xsx.jg.annotation.Ignore; import wiki.xsx.jg.annotation.IsNotNull; import java.util.Date; /** * 测试简单Java类 */ public class Test1 { @Id //主键注解 private Integer id; @IsNotNull //不为空注解 private String name; private Integer age; private String address; private String phoneNumber; private Double salary; @Ignore //忽略注解(忽略此属性,不创建该字段;可用于类,当用于类时,忽略此类,不创建数据表) private String description; private Date createTime; ...... } ``` # 数据类型对应关系 ### MySQL 1.数据库表 -> Java类 ``` 数据库类型 Java类型 CHAR|VARCHAR String TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|YEAR Integer BIGINT Long FLOAT Float DOUBLE Double DECIMAL BigDecimal DATE|DATETIME|TIMESTAMP Date TIME Time BINARY|VARBINARY|TINYBLOB|BLOB|MEDIUMBLOB|LONGBLOB byte[] Others Object ``` 2.Java类 -> 数据库表 ``` Java类型 数据库类型 String VARCHAR Integer INT Long BIGINT Float FLOAT Double Double BigDecimal DECIMAL Date TIMESTAMP Time TIME byte[] BLOB Others VARCHAR ``` ### Oracle 1.数据库表 -> Java类 ``` 数据库类型 Java类型 CHAR|VARCHAR2|LONG String NUMBER(x), 2<=x<=9 Integer NUMBER(x), 10<=x<=18 Long NUMBER(x,y), y=1 Float NUMBER(x,y), y>=2 Double NUMBER(x), x>=19 BigDecimal DATE|TIME|TIMESTAMP Date BLOB Blob CLOB Clob Others Object ``` 2.Java类 -> 数据库表 ``` Java类型 数据库类型 String VARCHAR Integer|Long|Float|Double|BigDecimal|Boolean|Byte|Short NUMBER Date|Time DATE Timestamp TIMESTAMP Blob BLOB Clob CLOB byte[] RAW Others VARCHAR ``` ### SQL Server 1.数据库表 -> Java类 ``` 数据库类型 Java类型 CHAR|NCHAR|VARCHAR|NVARCHAR|TEXT|NTEXT|UNIQUEIDENTIFIER|XML String INT Integer SMALLINT|TINYINT Short BIGINT Long REAL Float FLOAT Double DECIMAL|NUMERIC|SMALLMONEY|MONEY BigDecimal DATE|TIME|DATETIME|DATETIME2|SMALLDATETIME|DATETIMEOFFSET Date TIMESTAMP|BINARY|IMAGE|VARBINARY byte[] BIT Boolean Others Object ``` 2.Java类 -> 数据库表 ``` Java类型 数据库类型 String NVARCHAR Integer INT Float REAL Double FLOAT Long BIGINT Short SMALLINT BigDecimal DECIMAL Date|Time|Timestamp DATETIME Boolean BIT byte[] VARBINARY Others NVARCHAR ``` ### PostgreSQL 1.数据库表 -> Java类 ``` 数据库类型 Java类型 CHAR|VARCHAR|TEXT String INT4|SERIAL4|INTERVAL Integer INT2|SERIAL2 Short INT8|SERIAL8 Long FLOAT4 Float FLOAT8|MONEY Double DECIMAL BigDecimal DATE|TIME|TIMETZ|TIMESTAMP|TIMESTAMPTZ Date BOOL Boolean Others Object ``` 2.Java类 -> 数据库表 ``` Java类型 数据库类型 String VARCHAR Integer INT4 Float FLOAT4 Double FLOAT8 Long INT8 Short INT2 BigDecimal DECIMAL Date DATE Timestamp TIMESTAMP Time TIME Boolean BOOL Others VARCHAR ``` # 联系方式 ### QQ:344646090