sqlplus.jar命令行下连接Mysql、SQLServer、Oracle小工具

yzmm
1740 阅读
使用了一个btc-ascii-table小工具,可以像mysql客户端一样方便的管理数据库。自带mysql、sqlserver2000、2005+、oracle数据库驱动,可以在命令行下直连这几种数据库。连接的时候需要自行指定对应的数据库的驱动URL哦,百度下jdbc或者参考我以前的文章。

交互shell方式:

1

直接执行命令方式:

java -jar sqlplus.jar "com.mysql.jdbc.Driver" "jdbc:mysql://localhost:3306/mysql" "root" "c123456" "select version()"

2

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import com.bethecoder.ascii_table.ASCIITable;
import com.bethecoder.ascii_table.impl.JDBCASCIITableAware;
import com.bethecoder.ascii_table.spec.IASCIITableAware;
public class SqlPlus {
	private static Connection conn = null;
	public static void getConnection(String driver,String url,String user,String pass) {
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,pass);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void executeSQL(String sql) {
		try {
			if(!sql.isEmpty()){
				try {
					IASCIITableAware asciiTableAware = new JDBCASCIITableAware(conn, sql);
					ASCIITable.getInstance().printTable(asciiTableAware);
				} catch (Exception e) {
					System.out.println(e.toString());
				}
			}
			System.out.print(conn.getMetaData().getDatabaseProductName()+"> ");
			String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
			if(!"exit".equalsIgnoreCase(str)){
				executeSQL(str);
			}else{
				return;
			}
		} catch (Exception e) {
			System.out.println(e.toString());
		}
	}
	public static void main(String[] args) {
		try {
			if(args.length == 5){
				getConnection(args[0],args[1],args[2],args[3]);
				IASCIITableAware asciiTableAware = new JDBCASCIITableAware(conn, args[4]);
				ASCIITable.getInstance().printTable(asciiTableAware);
			}else{
				System.out.print("Driver:");
				String driver = new BufferedReader(new InputStreamReader(System.in)).readLine();
				System.out.print("URL:");
				String url = new BufferedReader(new InputStreamReader(System.in)).readLine();
				System.out.print("username:");
				String user = new BufferedReader(new InputStreamReader(System.in)).readLine();
				System.out.print("password:");
				String passwd = new BufferedReader(new InputStreamReader(System.in)).readLine();
				getConnection(driver,url,user,passwd);
				System.out.print("\r\n"+conn.getMetaData().getDatabaseProductName()+"> ");
				String sql = new BufferedReader(new InputStreamReader(System.in)).readLine();
				if(conn != null){
					executeSQL(sql);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

下载地址:sqlplus.jar

评论 (0)

发表评论