### 这里的命令我统一弄到配置文件中。注释中也可以用package com.park.mecupdate.utils;import com.park.mecupdate.config.MecDbconfig;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.jdbc.ScriptRunner;
import org.springframework.beans.factory.annotation.Autowired;import java.io.*;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.DriverManager;/*** 执行sql脚本* @Author Miracle Luna* @Date 2020/9/16 11:59* @Version 1.0* @description*/
public class ExecSqlUtil {private static String dbHost="localhost"; // 数据库地址private static String dbName="test"; // 数据库名称private static String userName = "root"; // 登录名称private static String userPassword = "123456"; // 登录密码private static String dbPort="3306";// 数据库端口号public static void main(String[] args) {try {runSqlFile(dbHost,dbPort,userName,userPassword,dbName,"D:/data/db/","test.sql","cmd","/c");} catch (Exception e) {System.out.println("sql脚本执行发生异常");e.printStackTrace();}}// /**
// * @功能描述: 获取数据库连接
// * @return
// * @throws Exception
// */
// public static Connection getMySqlConnection() throws Exception {
// Class.forName("com.mysql.jdbc.Driver");
// String url="jdbc:mysql://"+dbHost+":"+dbPort+"/"+dbName+"?useUnicode=true&characterEncoding=utf-8&port="+dbPort+"&autoReconnect=true";
// return DriverManager.getConnection(url,userName,userPassword);
//
// }/*** 执行SQL脚本文件* @param ip MySQL数据库所在服务器地址IP* @param host 数据库端口号* @param userName 进入数据库所需要的用户名* @param password 进入数据库所需要的密码* @param databaseName 要导入的数据库名* @param filePath SQL脚本文件目录* @param fileName SQL脚本文件名称* @throws IOException*/public static void runSqlFile(String ip, String host, String userName, String password, String databaseName, String filePath, String fileName,String var1,String var2) throws IOException{String cmdarray[] = { "mysql -h" + ip + " -P" + host + " -u" + userName + " -p" + password + " " + databaseName, "source " + filePath + fileName };Runtime runtime = Runtime.getRuntime();OutputStream os = null;OutputStreamWriter writer = null;try {// winddow cmd//String [] getRunningcmd = {"cmd","/c",cmdarray[0]};// linux cmd// String [] getRunningcmd = {"/bin/sh","-c",cmdarray[0]};String [] getRunningcmd = {var1,var2,cmdarray[0]};Process process = runtime.exec(getRunningcmd);//cmd之后执行数组的第一个条件进入数据库//执行了第一条命令以后已经登录到mysql了os = process.getOutputStream();writer = new OutputStreamWriter(os);writer.write(cmdarray[1]);//向图形界面输出第二第三条命令。中间 \r\n 作用是用来换行的,writer.flush();} finally {try {if (writer != null) {writer.close();}if (os != null) {os.close();}} catch (IOException e) {e.printStackTrace();}}}
}
详细解决方案
java操作shell命令(2)---java执行mysql脚本
热度:97 发布时间:2024-02-21 06:55:24.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- java web 登录次数限制,该如何解决
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- mysql 简单化 or能否实现
- java 系统单点登录解决方案
- 请问registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- JAVA WEB导航条,该怎么处理
- java 中Node 有关问题
- 吐了,java Timer 终止不了。
- MySQL 5.5 Command Line Client 窗口1输密码就退出
- java web开发解决办法
- 关于 java cast 有关问题,你明白不
- java web项目上的一些文件
- java struts 文件上载
- java web baidu map开发
- JAVA WEB导航条解决办法
- java 编写ftp上载
- java web中的一个有关问题,困扰小弟我很久了
- java web 与tomcat解决办法
- 在LINUX上配置 MySQL 开机自动 启动
- java web基于j2ee的一些有关问题
- java 内网外网的一个需求,该怎么处理
- jsp 页面 安插ArrayList 报错。为什么,已经加了import="java.util."了呀!
- java dwg 怎样用java把dwg便是aoutcad的格式文件转换成gif,jpg等格式
- java webservice解决方法