📄 mhsql.java
字号:
package net.jumperz.app.MHSql;
import java.io.*;
import java.sql.*;
import net.jumperz.sql.*;
public class MHSql
{
private static final String DEFAULT_DBMS_USER = "sa";
private static final String DEFAULT_DBMS_PASS = "";
private static final int BUFSIZE = 1024;
private static final int OFFSET = 50;
private String dbmsPass = DEFAULT_DBMS_PASS;
private String dbmsUser = DEFAULT_DBMS_USER;
private String dbmsUrl;
private Connection connection;
private ResultSet rs;
private BufferedReader reader;
//--------------------------------------------------------------------------------
public static void main( String[] args )
throws Exception
{
if( args.length == 0 )
{
System.out.println( "Usage: java MHSql dbmsUrl [ -u username ] [ -p password ]" );
return;
}
MHSql instance = new MHSql();
instance.start( args );
}
//--------------------------------------------------------------------------------
public void start( String[] args )
throws Exception
{
for( int i = 0; i < args.length; ++i )
{
if( args[ i ].equals( "-u" ) )
{
dbmsUser = args[ i + 1 ];
++i;
}
else if( args[ i ].equals( "-p" ) )
{
dbmsPass = args[ i + 1 ];
++i;
}
else
{
dbmsUrl = args[ i ];
}
}
System.out.println( "Initializing Database..." );
Class.forName( MSqlUtil.getJdbcDriverClassName( dbmsUrl ) );
connection = DriverManager.getConnection( dbmsUrl, dbmsUser, dbmsPass );
System.out.println( "OK." );
reader = new BufferedReader( new InputStreamReader( System.in ) );
StringBuffer sqlBuf = new StringBuffer();
while( true )
{
String line = reader.readLine();
if( line == null )
{
break;
}
if( line.equals( "quit" ) )
{
break;
}
if( line.equals( "" ) )
{
continue;
}
sqlBuf.append( line );
if( line.indexOf( ";" ) > -1 )
{
try
{
executeSql( sqlBuf.toString() );
}
catch( SQLException e )
{
System.out.println( e );
}
sqlBuf = new StringBuffer();
}
}
connection.close();
}
//--------------------------------------------------------------------------------
private void executeSql( String sql )
throws SQLException, IOException
{
long start = System.currentTimeMillis();
rs = MSqlUtil.executeQuery( connection, sql );
long t = System.currentTimeMillis() - start;
System.out.println( "time: " + t );
int j = 0;
while( rs.next() )
{
ResultSetMetaData md = rs.getMetaData();
int count = md.getColumnCount();
StringBuffer strBuf = new StringBuffer( BUFSIZE );
for( int i = 0; i < count; ++i )
{
if( i != 0 )
{
strBuf.append( "\t" );
}
strBuf.append( rs.getString( i + 1 ) );
}
System.out.println( strBuf.toString() );
++j;
if( j == OFFSET )
{
String line = reader.readLine();
if( line.equals( "break" ) || line.equals( "b" ) )
{
break;
}
j = 0;
}
}
}
//--------------------------------------------------------------------------------
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -