Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.txt | 2014-02-21 | 2.0 kB | |
dbvolution-0.9.9.pom | 2014-02-20 | 9.2 kB | |
dbvolution-0.9.9.jar | 2014-02-20 | 385.7 kB | |
dbvolution-0.9.9-sources.jar | 2014-02-20 | 253.9 kB | |
dbvolution-0.9.9-javadoc.jar | 2014-02-20 | 1.1 MB | |
Totals: 5 Items | 1.7 MB | 0 |
0.9.9 Is out, and it's a big deal, but you might not notice. There are 2 major changes: QueryGraph now streamlines your queries; and DBTable has been completely re-written. A complete graph of the tables and joins is now drawn internally with QueryGraph and used to add tables to the SQL query in a better order. Previously it was possible to create a highly inefficient outer join by adding DBRows in the "wrong" order. Now DBV adds the tables in an efficient order when possible. You can gleefully add examples any which way and know that DBV will tidy up after you. DBTable changes are even large and more significant, but strangely easy to deal with. Originally DBTable was the first method of querying, as time passed however it was largely superseded by DBQuery. In fact I'd basically stopped adding features to it as maintaining 2 query engines was too much work. The next big step in DBV needs to be added to DBTable as well as DBQuery tho, so I had a problem. There was also the divergence in API in the 2 classes: getAllRows() did radically different things. So I have completely replaced DBTable with a brand new version which is a thin wrapper on DBQuery that transforms query operations into lists of a single DBRow class. There is still some difference in the API but the biggest gotcha is gone and the API is much simpler. Previously you would write "database.getDBTable(row).getRowsByExample(row).toList()", the new way is "database.getDBTable(row).getAllRows()". So you might have to shorten your code, which is good :) There a couple of changes you should be aware of: DBTable now notices the initial example - it will be used as the default criteria; DBTable is stateful - when you run it with a new example it changes the example internally; DBTable is safe - the example is copied and cannot be changed externally; DBTable is fresh - queries are run every time and never cached. DBTable is now up-to-date and ready to keep providing the easiest database access ever. Good luck :)