首页 > 数据库 >jeecgboot 3.7.1 一键将生成好的代码复制到前后端项目目录,并执行SQL插入菜单的python脚本.

jeecgboot 3.7.1 一键将生成好的代码复制到前后端项目目录,并执行SQL插入菜单的python脚本.

时间:2024-10-16 18:10:49浏览次数:7  
标签:复制到 src demo sql 3.7 file SQL dir jeecg

import shutil
import os
import mysql.connector
from mysql.connector import Error

base_dir = "D:/pro/JeecgBoot-v3.7.1"
code_dir = "/gendcode"
package_name = "meetrice"

# MySQL 连接配置
config = {
    'user': 'root',
    'password': 'youpwd',
    'host': 'localhost',
    'database': 'jeecg-boot',
    'raise_on_warnings': True
}

#复制目录
def copy_directory(src, dst):
    # 如果源目录不存在,直接返回
    if not os.path.exists(src):
        print(f"源目录 {src} 不存在,跳过复制")
        return

    # 遍历源目录
    for item in os.listdir(src):
        s = os.path.join(src, item)
        d = os.path.join(dst, item)
        if os.path.isdir(s):
            # 如果是目录,递归复制
            if not os.path.exists(d):
                shutil.copytree(s, d, symlinks=False, ignore=shutil.ignore_patterns('*.sql'))
            else:
                copy_directory(s, d)  # 递归调用以处理子目录
        else:
            # 如果是文件,且不是 .sql 文件,则复制
            if not item.lower().endswith('.sql'):
                shutil.copy2(s, d)

# 获取最新的 SQL 文件
def get_latest_sql_file(directory):
    sql_files = [f for f in os.listdir(directory) if f.endswith('.sql')]
    if not sql_files:
        return None
    return max(sql_files, key=lambda f: os.path.getmtime(os.path.join(directory, f)))

#执行sql
def execute_sql_file(file_path):
    try:
        connection = mysql.connector.connect(**config)
        if connection.is_connected():
            cursor = connection.cursor()
            
            # 读取 SQL 文件内容
            with open(file_path, 'r',encoding='utf-8') as file:
                sql_script = file.read()
            
            # 执行 SQL 脚本
            for result in cursor.execute(sql_script, multi=True):
                if result.with_rows:
                    print("Rows produced by statement '{}':".format(result.statement))
                    print(result.fetchall())
                else:
                    print("Number of rows affected by statement '{}': {}".format(
                        result.statement, result.rowcount))
            
            connection.commit()
            print(f"SQL file {file_path} executed successfully")
    
    except Error as e:
        print(f"Error executing SQL file: {e}")
    
    finally:
        if connection.is_connected():
            cursor.close()
            connection.close()
            print("MySQL connection is closed")

# 定义源目录和目标目录的对应关系
directory_pairs = [
    (base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/controller",
     base_dir+"/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/"+package_name+"/controller"),
    (base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/entity",
     base_dir+"/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/"+package_name+"/entity"),
    (base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/mapper",
     base_dir+"/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/"+package_name+"/mapper"),
    (base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/service",
     base_dir+"/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/"+package_name+"/service"),
    (base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/vo",
     base_dir+"/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/"+package_name+"/vo"),
    (base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/vue3",
     base_dir+"/jeecgboot-vue3/src/views/"+package_name+"/")
]

# 遍历目录对并执行复制
for src, dst in directory_pairs:
    copy_directory(src, dst)
print("所有复制操作已完成")

# SQL 文件所在的目录
sql_directory = base_dir + code_dir + "/src/main/java/org/jeecg/modules/demo/"+package_name+"/vue3"

# 获取最新的 SQL 文件
latest_sql_file = get_latest_sql_file(sql_directory)

if latest_sql_file:
    file_path = os.path.join(sql_directory, latest_sql_file)
    print(f"Executing latest SQL file: {file_path}")
    execute_sql_file(file_path)
else:
    print("No SQL files found in the specified directory")

 

  GoogleBing百度搜韵

标签:复制到,src,demo,sql,3.7,file,SQL,dir,jeecg
From: https://www.cnblogs.com/meetrice/p/18470497

相关文章

  • 关系型数据库(mysql/InnoDB)的前世今生
    博主专注于Java程序开发,旨在与各路大神做技术交流,觉得不错的朋友,点个关注,有想深度交流,也可参考博主其他文章:java知识体系搭建-CSDN博客前言本文将汇总介绍关系型数据库的常用知识,理论偏多,希望大家都能对关系型数据库有个总体的认识。具体应用,大家需要在工作中自行融汇。介绍......
  • my2sql数据闪回
    使用限制只能回滚DML,不能回滚DDL使用回滚/闪回功能时,binlog格式必须为row,且binlog_row_image=full,DML统计以及大事务分析不受影响MySQL8.0版本需要在配置文件中加入default_authentication_plugin=mysql_native_password,用户密码认证必须是mysql_native_password才能解析......
  • 高可用 proxysql + mysql MGR
    MGR配置安装系统:centos7.9yuminstallhttps://repo.percona.com/yum/percona-release-latest.noarch.rpmpercona-releaseenable-onlyps-8x-innovationreleasepercona-releaseenabletoolsreleaseyuminstallpercona-server-server第一台机器配置#mgr#basic......
  • 倒排索引及ES相关概念对比MySQL
    一、倒排索引1、先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引2、对搜索内容进行分词,分词后得到一个关键词列表,根据关键词去词条库中匹配,在找对应的文档ID列表3、然后根据文档ID列表,找到对应的文档信息对比:   二、ES相关概念对比My......
  • SqlUtils 使用
    一、前言随着Solon3.0版本发布,新添加的SqlUtils接口,用于操作数据库,SqlUtils是对Jdbc原始接口的封装。适合SQL极少或较复杂,或者ORM不适合的场景使用。二、SqlUtils使用1、引入依赖<dependency><groupId>org.noear</groupId><artifactId>solon-data-sq......
  • Elasticsearch相关概念对比mysql
    一、简介ElasticSearch是强大的搜索和分析引擎。能快速存储、检索和处理大量数据,提供实时搜索结果,擅长处理复杂查询,助力企业从海量数据中获取有价值信息,优化业务决策和提升用户体验。二、术语2.1索引Elasticsearch中的索引类似MySQL中的表,是相同类型文档的集合。它如同表......
  • 5大主流方案对比:MySQL千亿级数据线上平滑扩容实战
    在项目初期,我们部署了三个数据库A、B、C,此时数据库的规模可以满足我们的业务需求。为了将数据做到平均分配,我们在Service服务层使用uid%3进行取模分片,从而将数据平均分配到三个数据库中。如图所示:图片后期随着用户量的增加,用户产生的数据信息被源源不断的添加到数据库中......
  • Windows安装MySQL(zip安装)
    1.下载#dev.mysql.com>Download>下载MySQLCommunity(GPL)Downloads2.配置my.ini[mysqld]#一定要加这个,默认启动端口是3306,一般不会用默认端口port=50013#设置mysql的安装目录,一定要\\,否则不识别basedir=G:\\soft\\mysql-8.4.3-winx64#设置mysql数据库的数据的......
  • C#连接MySQL8.0数据库失败
    环境.net7MySQL8.0报错提示:未经处理的异常System.AggregateException:“Oneormoreerrorsoccurred.(Authenticationmethod'caching_sha2_password'failed.Eitheruseasecureconnection,specifytheserver'sRSApublickeywithServerRSAPublicKeyFile,......
  • 三:mysql条件查询
    三:mysql条件查询1:查询工资等于5000的员工 ......