控制台查询mysql版本信息_控制台版的SQL Server查询分析器

通过对SQL Server查询分析器的使用,可以对其内部的运行机制有一个初步了解;结合对企业管理器系统自带的一些文件的分析,用户的操作结果在其中都有所体现;于是,经过综合,可以制作出简化的SQL Server查询分析器。

作为SQL Server查询分析器的大多数功能它己经实现,仅有小部分功能在日后有待完善。同时,此版本是是控制台上完成的,在日后会向图形化升级。其中不妥之处还望各位多多提供改良议建,谢谢!

核心代码如下:

package mysas;

import java.io.InputStream;

import java.sql.*;

import java.io.IOException;

public class Test {

public static String getIn() {         //获得用户输入内容

try {

InputStream in = System.in;

byte[] b = new byte[100];

in.read(b);

return new String(b).trim();

} catch (IOException ex) {

return "";

}

}

public static void main(String[] args) {

System.out.println("--------------------------------------");

System.out.println("");

System.out.println("      SQL Server查询分析器 v1.0");

System.out.println("");

System.out.println("                        2010.6.19");

System.out.println("--------------------------------------");

System.out.print("请输入SQL Sever用户名:");

String userName = getIn();

System.out.print("请输入SQL Server密码:");

String password = getIn();                   //SQL Sever身份验证

DBManager.DatabaseName = "master";

DBManager.userName = userName;

DBManager.password = password;

//自定义类DBManager,定义了三个静态变量和DatabaseName,userName和password,

//分别存储数据库名称,SQL Sever用户名和密码;还有连接数据库方法getConnection()

Connection conn = DBManager.getConnection();

try {                                     //各数据库信息的显示

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery(

"select name,crdate from sysdatabases");

System.out.println("--------------------------------------");

System.out.println("数据库名称\t数据库创建时间\t");

while (rs.next()) {

System.out.println(rs.getString(1) + "\t\t" + rs.getString(2) +

"\t");

}

System.out.println("--------------------------------------");

} catch (Exception e) {

} finally {

try {

conn.close();

} catch (SQLException ex) {

}

}

boolean bb = true;

while (bb) {

System.out.print("请输入要查询的数据库名称:");

String order=getIn();

if(order.toLowerCase().equals("exit")){

break;

}

DBManager.DatabaseName = order;

conn = DBManager.getConnection();

try {                             //特定数据库中表信息的显示

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery(

"select name from sysobjects where xtype in ('U','S')");

System.out.println("--------------------------------------");

System.out.println("表名");

while (rs.next()) {

System.out.println(rs.getString(1));

}

System.out.println("--------------------------------------");

} catch (Exception e) {

} finally {

try {

conn.close();

} catch (SQLException ex1) {

}

}

boolean b = true;

while (b) {                  //对一特定数据库的SQL操作

System.out.print("请输入要操作的SQL语句:");

String sql = getIn();

if (sql.toLowerCase().indexOf("insert") >= 0 ||

sql.toLowerCase().indexOf("update") >= 0 ||

sql.toLowerCase().indexOf("delete") >= 0[color=green][/color]) {

System.out.println(DatabaseLogic.update(sql));

//自定义类DatabaseLogic完成对DB的更新操作

} else if (sql.toLowerCase().indexOf("select") >= 0) {

conn = DBManager.getConnection();

Statement st = null;

try {

st = conn.createStatement();

ResultSet rs = st.executeQuery(sql);

ResultSetMetaData rsd = rs.getMetaData();

System.out.println(

"--------------------------------------");

for (int i = 1; i <= rsd.getColumnCount(); i++)

System.out.print(rsd.getColumnName(i) + "\t");

System.out.println();

while (rs.next()) {

for (int i = 1; i <= rsd.getColumnCount(); i++)

System.out.print(rs.getString(i) + "\t");

System.out.println();

}

System.out.println(

"--------------------------------------");

} catch (Exception ex2) {

} finally {

try {

conn.close();

} catch (SQLException ex3) {

}

}

} else if (sql.toLowerCase().equals("end")) {

b = false;

} else {

System.out.println("你输入的SQL语句有误!");

}

}

}

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-06-19 17:00

浏览 1215

评论

1 楼

whxiyi100829

2011-08-30

38687d1a1ad71d37c86f287056834d1a.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值