注意:一切权利保留,请勿将此代码作为商业用途.

Sql Anythere v1.00 是我用Swing编写的专为程序员做的一个通用数据库帮助工具,它有如下功能:
1.本地无需安装客户端,通过本程序即可访问数据库.
2.理论上可访问oracle,db2,sqlserver,sybase,informix,mysql,postgresql等七种数据库,用户只需加载相关的jar包即可.
3.打开数据库既可通过设定好的XML文件打开,也可通过对话框打开.
4.打开数据库后,程序会依次列出数据库中的Schema,Schema下的各表和和表中的各字段;更改上层,下层会随之改变.方便程序员在数据库中浏览.
5.轻松获得某表的完整CRUD各语句以及表对应的Pojo文件,Hibernate匹配文件等.
6.可执行SQL语句,显示处理结果.
7.可对多层的Select语句进行整形,帮助程序员理清其结构.
8.可打开多个选项页及窗口以进行不同的处理.

Sql Anythere v1.00 is a common database assistant tool for java programmers,it have the following functions:
1.If you haven't setuped the DB client ,you also could visit DB by this tool.
2.The tool can visit the oracle,db2,sqlserver,sybase,informix,mysql,postgresql,the only thing you must do is to load the associate jar file.
3.You can open a databse by XML file or by dialog.
4.Class the DB to the schemas,the tables in a schema and the columns in a table,it is very easy to view the whole picture of database.
5.It is easy to get the CRUD sql statement and the POJO class and Hibernate O/R Mapping file due to a table.
6.You can execute the Sql and get result in the tool.
7.The tool could format the complex sql statement to help you out from the sql puzzle.
8.You can open different pages and windows to handle different conditions.

可执行版本下载:
http://www.blogjava.net/Files/sitinspring/SqlAnywhereBat.zip

源码下载:
http://www.blogjava.net/Files/sitinspring/SqlAnywhere20070718112118.rar


(以下截图为老版,具体请参考执行程序)

下面是对一个Orcale数据库的操作过程截图:
1.通过XML文件打开数据库:
xml文件:


菜单选择:


文件选择:


打开之后:


左边一栏中,从上到下依次是数据库中的Schema,Schema下的诸表,表中的诸字段等信息,右边上面是输入框,下面是输出信息框.

更改Schema为system:

可以发现表信息发生了改变.

将Schema转换回来,点选HYTABL,更改表信息:

可以发现表中字段信息发生了改变.

右键点选HYTABLE表,选择弹出菜单,你将得到它完整的Select语句:


在右边你将看到输出的语句:

通过选择不同的菜单,你可以得到各种输出:



--<HYTABLE's select statement>--

select ID, NAME from HYTABLE


--<HYTABLE's Insert statement>--

insert into HYTABLE (ID, NAME) values (
'','')


--<HYTABLE's Delete statement>--

delete from HYTABLE where 
1=1


--<HY3TABLE's Update statement>--

update HY3TABLE set ID
='', TITLE=''  where 1=1 


--<HY3TABLE's Hibernate's Hbm.xml File.>--

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC-//Hibernate/Hibernate Mapping DTD//EN http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd

<hibernate-mapping>

    
<class name="Hy3table" table="HY3TABLE">

        
<id name="" column=""/>

        
<property name="id" class="java.math.BigDecimal" column="ID" />

        
<property name="title" class="java.lang.String" column="TITLE" />

    
</class>

</hibernate-mapping>



--<HYTABLE's Hibernate's Pojo Class>--

public class Hytable

    
private java.math.BigDecimal id;

    
private java.lang.String name;

}



你将Sql语句选择上,点击执行按钮就可以执行SQl语句:


如果是select语句,程序将会以列表形式显示;如果是insert等语句,程序将给出执行提示:


下面我们来看看数据是否真的被插入到数据库中了:

第六个就是我们刚才插入的数据.

点击表格的标题栏,你可以进行排序,本程序中所有表格都支持这个功能:
下面是点选name列进行排序的情况:


选择工具栏中表格状图标,可以对选择的select语句进行整形:
下面是对简单SQL进行整形的情况,上一句是原句,下面的是整形完毕的句子:


下面是个复杂些的例子,同样上一句是原句,下面的是整形完毕的句子:

select f1,(select * from tb2,(select * from (select * from (select * from tb5)))) from tabl1 where 1=1

 
Select     
        f1,
        (
         
Select     
                
*
         
from       
                tb2,
                (
                 
Select     
                        
*
                 
from       
                        (
                         
Select     
                                
*
                         
from       
                                (
                                 
Select     
                                        
*
                                 
from       
                                        tb5
                                )
                        )
                )
        )
 
from       
        tabl1
 
where     
         
1=1


对于不能整形或者整形有误的语句程序会在输出框内给出提示,本人也在努力扩大整形的功能范围.

使用工具栏上的笔状按钮可以修改输入框的字体:
 
工具利用java的preference实现了记忆效果,重新启动程序后无需再次设定.

你一次可以打开多个窗口,连接到不同的数据库.

如图,左边是MySql的,右边是Oracle的.

如果一开始没有XML文件,也可以通过对话框方式打开数据库:


在下面的对话框填写信息:


再点击OK按钮即可. 点击Save..按钮可以把刚才的信息存入XML文件.

对于已经打开的窗口,"Open XML"菜单可以改变到数据库的连接,"SaveXML"可以把数据库的连接信息存入XML文件.

其他功能如切换风格,时间显示,点击传送字符请大家自己尝试.

Feedback

# re: Sql Anywhere1.00(2007年7月19日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 12:58 by TiGERTiAN
Good!

# re: Sql Anywhere1.00(2007年7月19日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 13:27 by bean
帮忙测试下。

# re: Sql Anywhere1.00(2007年7月18日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 13:59 by 草鞋超人
似乎是个好东西,有空研究一下。多谢作者大方的开源。

提个建议:"SQL Anywhere"是Sybase的一个非常著名的产品,为了将来的发展,改个名字也许会更好一点。当然,如果作者只是做着玩的话就无所谓了……

# re: Sql Anywhere1.00(2007年7月18日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 14:16 by sitinspring
谢谢楼上建议,看来还真的要改改了.

# re: Sql Anywhere1.00(2007年7月18日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 14:40 by BeanSoft
恕我直言, 界面还需改进, 虽然功能很多, 但是好像不太直观易用. 可以和我 上学时候的练习: JDBC Explorer http://www.blogjava.net/beansoft/archive/2007/07/18/131068.html 对比一下, 也可以参考商业软件: http://www.dbvis.com/products/dbvis/ 的界面设计. 既然要做 GUI 版本, 那就还是尽量做的非常专业直观易用漂亮为好.

# re: Sql Anywhere1.00(2007年7月18日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 14:54 by sitinspring
@BeanSoft

谢谢直言.

界面我主要参考的是OSqlEdit的设计,确实有点不直观,你的程序和商业软件,我会尽量参考.由于没有美工,只能说尽力了.

这个程序在体系结构,功能,外观还有很多有待提高的地方,目前算是snapshot版本吧,我会一直做下去.

# re: Sql Anywhere1.00(2007年7月18日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 23:02 by blue
我试过了,对db2 9不支持,连接不上。应该是driver不对,因为9版的驱动和以前的不同。要是xml文件支持自定义driver就好了。

# re: Sql Anywhere1.00(2007年7月18日版本)使用简介 (源码及可执行包已发布)  回复  更多评论   

2007-07-18 23:11 by sitinspring
@blue

如果你是照着mysql-connector-java-5.0.6-bin.jar的说法做的话,我只好表示遗憾了.
Db2我没有环境测试,这个问题只好留待以后解决.
博学深思慎言笃行(http://www.blogjava.net)原创,转载请注明出处.