在Java控制台模拟dos命令下操作MySQL

一、导入mysql的驱动:“com.mysql.jdbc.Driver”, 必须将mysql的驱动 包(jar文件)导入到本工程中。

Class.forName("com.mysql.jdbc.Driver");

二、由DriverManager驱动的管理类对象去获得Connection,在此之前需要先导入mysql的驱动包(或者驱动类)。

Connection conn = DriverManager.getConnection(url, userName, userPassword);

三、由Connection对象,获得执行增删改的sql语句的状态对象Statement

Statement stmt = conn.createStatement();

四、执行增删改查。

主要代码:

1、获得连接对象

/**
	 *
	 * @return:返回获得的连接对象
	 * @throws SQLException
	 * @throws ClassNotFoundException
	 */
	public static Connection getConn(String database, String user,
			String password) throws ClassNotFoundException
	{
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = null;
		try
		{
			conn = DriverManager.getConnection(url + database, user, password);
			System.out.println("Database changed");
		} catch (SQLException e)
		{
			System.out.println(e.getMessage());
		}
		return conn;
	}

2、执行查询语句返回查询结果

	public static ArrayList<String[]> queryDB(String sql)
			throws ClassNotFoundException
	{
		ArrayList<String[]> list = null;
		try
		{
			list = new ArrayList<String[]>();
			ResultSet result = statement.executeQuery(sql);
			ResultSetMetaData rsd = result.getMetaData();
			num = rsd.getColumnCount();
			String[] columnName = new String[num];
			for (int i = 1; i <= num; i++)
			{
				columnName[i - 1] = rsd.getColumnName(i);
				queryLen[i - 1] = Math.max(queryLen[i - 1],
						columnName[i - 1].length());
			}
			list.add(columnName);
			while (result.next())
			{
				int index = 0;
				String[] string = new String[num];
				for (int i = 1; i <= num; i++)
				{
					string[i - 1] = String.valueOf(result.getObject(i));
					queryLen[index] = Math.max(queryLen[index],
							string[i - 1].length());
					index++;
				}
				list.add(string);
			}
		} catch (SQLException e)
		{
			 System.out.println(e.getMessage());
		}
		return list;
	}

3、格式化输出

public static void main(String[] args) throws SQLException,
			ClassNotFoundException, IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Connection conn = null;
		while (true)
		{
			System.out.print(">");
			String command = br.readLine();
			if (command.equals("mysql -u root -p"))
			{
				System.out.print("Enter password:");
				String password = br.readLine();
				System.out.print("mysql>");
				String database = br.readLine();
				if (database.split(" ")[0].equals("use"))
				{
					conn = getConn(database.split(" ")[1], "root", password);
					if (conn == null)
						continue;
				}
				break;
			}
		}
		statement = conn.createStatement();
		while (true)
		{
			System.out.print("\nmysql>");
			String sql = br.readLine();
			sql = sql.replace(";", "");
			if (sql.trim().equals("quit"))
			{
				break;
			} else if (sql.trim().startsWith("select"))
			{
				ArrayList<String[]> list = queryDB(sql);
				for (int i = 0; i < list.size(); i++)
				{
					if (0 == i || 1 == i)
					{
						System.out.print("|");
						for (int j = 0; j < list.get(i).length; j++)
						{
							for (int a = 0; a < queryLen[j]; a++)
							{
								System.out.print("-");
							}
							System.out.print("|");
						}
						System.out.println();
					}
					for (int j = 0; j < list.get(i).length; j++)
					{
						System.out.print("|" + list.get(i)[j]);
						for (int k = list.get(i)[j].length(); k < queryLen[j]; k++)
						{
							System.out.print(" ");
						}
					}
					System.out.println("|");
					if (i == list.size() - 1)
					{
						System.out.print("|");
						for (int j = 0; j < list.get(i).length; j++)
						{
							for (int a = 0; a < queryLen[j]; a++)
							{
								System.out.print("-");
							}
							System.out.print("|");
						}
						System.out.println();
					}
				}
			} else
			{
				updateDB(sql);
			}
		}
	}

运行测试:

时间: 2024-10-20 00:49:44

在Java控制台模拟dos命令下操作MySQL的相关文章

Java在DOS命令下的运行及其API文档制作过程

该文档主要描述java程序在DOS命令下的运行,以及一些常用的命令 常用DOS命令: d: 回车 盘符切换 dir(directory):列出当前目录下的文件以及文件夹 md (make directory) : 创建目录 rd (remove directory): 删除目录 cd (change directory)改变指定目录(进入指定目录) cd.. : 退回到上一级目录 cd\: 退回到根目录 del (delete): 删除文件,删除一堆后缀名一样的文件*.txt exit : 退出

java代码模拟DOS下的tree命令

DOS下的tree命令可以把当前路径当做根路径,然后把文件树以树的形式展示出来.这个命令的实现不难,深搜一下文件树就可以了. import java.io.File; import java.util.Scanner; public class Tree { public static int depth = 0; public static void main(String[] args) { Scanner cin = new Scanner(System.in); String path

DOS命令下输入:java Hello 出现以下几种结果可能的原因:

DOS命令下输入:java Hello 出现以下结果:Bad command or the file name 没有这个命令或文件名 原因可能是没有成功安装jdk或者没有配置好jdk 的环境变量,或者没有编译相应的文件. 2. 出现以下结果:Exception in thread “main” java.lang.NoClassDefFoundError: Hello 可能是什么原因 可能是没有定义类,直接写进main的字节码中. 记住,javac后面跟的参数是文件名,但java 后面跟的是类名

Java环境配置及在Dos命令下运行Java程序

Java环境配置及在Dos命令下运行Java程序 1. JDK下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 点击DOWNLOAD 首先点击安装许可协议 然后点击相应的版本下载,如果是windows点击如下: 安装成功以后 打开命令提示符,输入:java,出现如下提示表示安装成功! 2. Java环境配置 找到我的电脑->(鼠标右击)属性->高级系统设置->高级->环境变量-&g

安装Oracle之后在DOS命令下不能使用sqlplus命令启动Oracle?

就像完成安装JDK后需要给系统配置环境变量JAVA_HOME和PATH,以便让系统认识在JDK里面的Javac命令.同样的,安装Oracle也需要这么一个过程.在正常情况下安装Oracle时系统安装程序会自动配置环境变量,但如果安装过程中配置环境变量时发生错误,或者在安装成功后将系统给Oracle配置的环境变量删除,就会导致在DOS命令下系统不认识sqlplus命令,不能使用. 解决方法:先找到自己Oracle的安装目录 D:\app\Administrator\product\11.2.0\d

dos命令下使用sql server

通常情况下,我们可以在dos命令下使用sql server,使用dos命令来使用sql server的方法如下: 1.连接上数据库服务器: 使用osql命令,该命令可以在dos窗口中输入osql ?查看,如: 接下来我们使用osql  -S localhost -U sa -P 123456连接上我们的数据库服务器. 2.而后使用sql语句查询数据库中所有数据库名: 3.我们可以使用sql语句获取某个数据库下的所有的表的名称 其他的操作不再多述.

ubuntu命令行操作mysql常用操作

登陆mysql [email protected]:~/ruby/mydiary$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. 查看所有的数据库 mysql> show databases; --注意必须要用;结尾否则不会立即执行代码 +--------------------+ | Database | +--------------------+ | inf

linux下操作mysql,支持重连

(一)code #include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql/mysql.h> #include <mysql/errmsg.h> #include <sys/time.h> #define MAX_QUERY_LEN 1024 #define MAX_QUERY_COUNT 2 #define PRINT_MYSQL_ERROR(

python下操作mysql 之 pymsql

python下操作mysql  之  pymsql pymsql是Python中操作MySQL的模块, 下载安装: pip3 install pymysql 使用操作 1, 执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1') #