日期:2014-05-16  浏览次数:20435 次

Derby学习及前端开发工具使用心得。
        有好长一段时间没有摸新技术了(对自己而言是新的,因为以前没接触过),最近公司的一个项目需要使用Derby数据库,所以,花了点时间学习其简单使用。

        说来惭愧,工作这么长时间了,使用过Oracle、DB2等“大型”数据库,然而,学习Derby这样一个“小型”数据库,竟然遇到了好多的问题:

        1、Derby创建数据库后,其数据库文件放在哪个目录(配置了Derby的path和classpath)?刚开始不知道,后来上网搜到的结果是:“Derby会在当前你命令行下所在的目录下创建一个与数据库命一致的目录,其中存放了数据库的文件。”,但是遇到一个疑问:如果直接在bin目录下执行ij.bat,生成的数据库文件目录就在bin目录下,如果在cmd窗口中,执行命令ij,生成的数据库文件目录在lib目录下。这个疑问,还没搞明白。

        2、用命令行窗口,执行Derby常用操作,觉得不方便,所以想找一个前端开发工具,一直觉得DbVisualizer和SQuirreL SQL Client这两个工具不错,支持现在常见的数据库,所以,尝试了一下,但是在连接数据库时,一直不成功(通过ij命令可以正常连接),网上搜了一大堆资料,都没能解决问题,最后,突然想到,是不是没有设置用户名和密码这两个参数,所以想设置参数后再试试,但是创建数据库时,没有设置用户名和密码,默认是什么呢?网上搜到的默认用户名和密码:app,app。最后连接成功。

        3、在自己的应用中启动数据库和操作数据库。如果想把Derby集成到自己的应用中,并且随应用的启动而启动,而不是每次单独通过命令窗口执行启动命令。直接通过代码:
NetworkServerControl server = new NetworkServerControl();
server.start(null);

实现。

        4、如果在Eclipse中调试基于Derby数据库的代码,需要引入环境变量classpath中设置的包,否则会出现如下错误:
Exception in thread "DRDAConnThread_3" java.lang.NoSuchMethodError: org.apache.derby.iapi.jdbc.EnginePreparedStatement.getEmbedParameterSetMetaData()Lorg/apache/derby/iapi/jdbc/EngineParameterMetaData;
	at org.apache.derby.impl.drda.DRDAStatement.getParameterMetaData(Unknown Source)
	at org.apache.derby.impl.drda.DRDAConnThread.writeSQLDARD(Unknown Source)
	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
	at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)

1 楼 macleo 2011-05-17  
嗯.....derby.....有空了研究一下....^_^....比较感兴趣...
2 楼 dk101 2011-05-20  
macleo 写道
嗯.....derby.....有空了研究一下....^_^....比较感兴趣...


呵呵,我就是看了看,还没去深入使用过,不过,觉得集成和部署还是挺不错的。
3 楼 macleo 2011-05-21  
dk101 写道
macleo 写道
嗯.....derby.....有空了研究一下....^_^....比较感兴趣...


呵呵,我就是看了看,还没去深入使用过,不过,觉得集成和部署还是挺不错的。


把有用的网站贴上来哦.....谢谢
4 楼 greatwqs 2011-08-12  
我执行的命令生成的数据库都是在/DERBY_HOME/bin的目录中
不知道你的是怎么到lib中的去的?难道是用的命令
java org.apache.derby.tools.ij
我没有把lib加入到classpath
D:\Program Files\derby\db-derby-10.8.1.2-bin\bin>ls
NetworkServerControl      ij_cmd_test_db          startNetworkServer.bat
NetworkServerControl.bat  setEmbeddedCP           stopNetworkServer
dblook                    setEmbeddedCP.bat       stopNetworkServer.bat
dblook.bat                setNetworkClientCP      sysinfo
derby.log                 setNetworkClientCP.bat  sysinfo.bat
derby_common.bat          setNetworkServerCP      toursdb
ij               &nbs