控制台版的SQL Server查询分析器

[color=green] 通过对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][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语句有误!");
}
}

}
}
}
[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值