java2sql 让数据库构建更简单,java代码书写生成sql语句并迁移填充数据到数据库

java2sql 是一款基于java代码开发的数据库命令行构建工具。通过简单的命令生成和迁移填充数据库数据。

受 Laravel Artisan Migrate/Seeder 功能启发开发而成。

github开源地址:https://github.com/godcheese/java2sql

优点:

  • 利用 java 代码书写,java开发者的自然优越感
  • 用命令行操作,使用更加简单
  • 代码复用率更高

基础组件有Migrate、Seeder等

安装:

使用

java -jar java2sql migration:UsersMigration
java2sql migration:UsersMigration // 这句必需在系统设置环境变量后才能正常运行

在 migrations 生成如下 *.java 文件,每个文件代表一个数据表迁移,每个文件都有一个public static void main(String[] args) 方法。

Template migration class java 代码实例:

package com.gioov.java2sql;

import com.gioov.java2sql.adapter.DatabaseAdapter;
import com.gioov.java2sql.adapter.FieldAdapter;
import com.gioov.java2sql.adapter.mysql.MySqlAdapter;
import com.gioov.java2sql.adapter.mysql.MysqlFieldAdapter;
import com.gioov.java2sql.adapter.mysql.MysqlTableAdapter;

/**
 * Created by godcheese on 2017/7/16.
 */
public class TemplateMigration {

    public static void main(String[] arg){

        /**
         *
         *  Init database adapter
         *  Init table adapter
         *  Init migration
         *
          */

        DatabaseAdapter database=new MySqlAdapter();
        database.setName("test").setCharacterSet("utf8mb4").setCollate("utf8mb4");
        MysqlTableAdapter table =new MysqlTableAdapter();
        table.setName("NewTable");
        Migration migration =new Migration(database,table);


        /**
         * Init field adapter and set properties
         * Field Name:id
         * Field Type:bigint
         * Field Length:20
         * Filed Primary Key:true
         * Filed Auto Increment:true
         * Field Null:false
         * Field Unsigned:false
         *
         */
        FieldAdapter idField=new MysqlFieldAdapter().setName("id").setType("bigint").setLength(20).setPrimaryKey(true).setAutoIncrement(true).setIsNull(false).setIsUnsigned(false);

        /**
         * Init field adapter and set properties
         * Field Name:name
         * Field Type:varchar
         * Field Length:50
         * Filed Null:false
         *
         */

        FieldAdapter nameField=new MysqlFieldAdapter().setName("name").setType("varchar").setLength(50).setIsNull(false);


        // Add database table fields
      String sql=  migration.addField(idField).addField(nameField).execute();

      System.out.println(sql);

        /**
         *
         *
         * Result Sql: DROP TABLE IF EXISTS `NewTable`;
         * CREATE TABLE `NewTable` (  `id`  bigint(20) NOT NULL ,
         * `name`  varchar(50) CHARACTER SET utf8mb4  COLLATE utf8mb4  NOT NULL ,
         * PRIMARY KEY (`id`) )
         * ENGINE= InnoDB;
         *
         */
        
    }
}

 

 

共有 0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注