Annetta: Thank you very much for the advice... I will try this as soon as possible. It looks very promising.
Daniel Morton --- "Annetta C. Green" <[EMAIL PROTECTED]> wrote: > Daniel, > > >I'm really at a loss here. Can anyone tell me what > I'm doing wrong? > > >I've read through all the relevant sections of the > Derby documentation, and > I'm not really sure what to do next. > > Try loading the database properties from a > configuration file in the jar > file. > > The basics of the following code fragments are in > the article (the url > below) - the structure and the > configuration.properties file definitions > came straight from the code in the article - the > original author does a > great job of explaining how it works. > Make the configuration properties file in Notepad. > Save it with the name > "Configuration.properties" - it must be in the same > folder as the class file > calling it unless the fully qualified path is used. > > There is a very good example at this site: > http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javadb/ > > The configuration file has the following lines: > (there are no spaces on > either side of the equals (=) sign > > #Configuration properties resource file > db.path=jar:C:/project/NameList/NameGenerator.jar > db.name=NameDB > db.url=jdbc:derby: > derby.driver=org.apache.derby.jdbc.EmbeddedDriver > > /**** This is the class file for connection to the > database ***/ > String dbPath; > String dbName; > String systemDir; > String configProperties = > "Configuartion.properties"; > > public ClassFileName(String dbPath, String dbName) > { > this.dbPath = dbPath; > this.dbName = dbName; > loadMyProperties(); > String driverName = > dbProperties.getProperty("derby.driver"); > loadDBDrivers(driverName); > }//end constructor > > //load db properties > public void loadMyProperties() > { > //load the dbProperties > > //use a try and catch here > InputStream input = > ClassFileName.class.getResourceAsStream(configProperties); > > Properites dbProperties = new Properties(); > > //set the directory for derby and the database > systemDir = dbPath + dbName; > //Try a System.out.println("\nsystemDir: " + > systemDir); to make sure > the string has correct syntax for OS > System.setProperty("derby.system.home", > systemDir); > > try > { > dbProperties.load(input) > }//end try > catch(IOException ex) > { > Ex.printStackTrace(); > }//end catch > }//end loadMyProperties > > //load the driver > public void loadDBDrivers(String driverName) > { > //load derby driver > try > { > Class.forName(driverName); > }//end try > catch(ClassNotFoundException cne) > { > cne.printStackTrace(); > }//end catch > }//end loadDBDrivers > > //make the connection > public void makeConnection() > { > String dbUrl = dbProperties.getProperty("db.url" + > dbName); > Connection dbConnection = null; > > try > { > dbConnection = DriverManager.getConnection(dbUrl, > dbProperties); > //anything else that needs to be done in the > connection goes > here > }//end try > catch (SQLException se) > { > se.printStackTrace(); > }//end catch > }//end makeConnecton > > > // ... whatever methods needed for the class > > > > >Also, once I get this sorted out, is there a way to > include derby.jar > inside NameGenerator.jar so that just the one file > could be distributed? > > Try putting the derby.jar in the class path of the > NameGenerator.jar file to > include it > > I use the NetBeans 5.0 platform for developing java > applications - It is > very easy to include external jars in the class path > with this IDE. It can > be found at http://www.netbeans.org - the platform > also helps with builds > and versioning - makes a nice distributable jar file > after building. > Databases can be created in the IDE or by creating a > class file to create > the database - I use the method described in the > article above. > > Hope this helps. I have only been doing JDBC for > about 6 months - the hard > way - using JDBC-ODBC bridge. A couple of weeks > ago, my husband stumbled > onto Derby. I have started using it and have > discovered that it is much > better and easier than using ODBC, > > Annetta C. Green > NettaSoft, Senior Developer/Engineer > (505) 927-0072 mobile > [EMAIL PROTECTED] > > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
