Database Framework Scripting Layers is
a lightweight database abstraction layer suitable for high-load websites where you need the scalable advantages of connection pooling. DBFSlayer talks to clients via JSON over HTTP, meaning it's simple to monitor and can swiftly interoperate with any web framework you choose.
Features At A Glance
Download
https://sourceforge.net/projects/dbfslayers/files/
dbfs_layers_fat.jar include following lib
- jetty 6.1
- servlet 2.5, jsp 2.5
- struts 1.2.9
- json-lib 2.3
- bleujin framework_core_fat.jar(http://sourceforge.net/projects/clientcursordbf/)
- Database JDBC client libraries(offical lib of oracle 9i ,mssql 2000 , mysql 5)
Install
1. download dbfs_layer_web.zip(https://sourceforge.net/projects/dbfslayers/files/)
2. extract dbfs_layer_web.zip
5. download dbfs_layers_fat.jar at 2.dir (https://sourceforge.net/projects/dbfslayers/files/)
6. configure webapps/simple/WEB-INF/default-config.xml
6. execute java -jar dbfs_layer_fat.jar
7. connect http://localhost:8080/simple/index.htm
Configuring Your Database
view webapps/simple/WEB-INF/default-config.xml
Example Usage
run : java -jar dbfs_layers_fat.jar
view : http://localhost:8080/simple/index.htm
<script language="JavaScript">
var dc = new Database(new Session('http://localhost:8080/simple/db.do', 'john'));
var ins = dc.createUserCommand("insert into update_sample values(2, '222')") ;
$('result').innerHTML = ins.execUpdate() + '<br/>\n' ;
var cmd = dc.createUserCommand('select * from update_sample where a < :a') ;
cmd.setPage(3, 1) ; // 1 page per 3 unit
cmd.setParam('a', '3') ;
// var result = cmd.execQuery() ; // excute. return JSON format
$('result').innerHTML += cmd.execQuery() + '<br/>\n';
/* execute procedure example
var upt = dc.createUserProcedure('sample@selectEmpBy()') ;
upt.setPage(3, 1) ;
$('result').innerHTML = upt.execQuery() ;
*/
/* multiple query(same transaction) example
var upt1 = dc.createUserCommand('select * from copy_tblc where no1 < :no1') ;
upt1.setPage(3, 1) ;
upt1.setParam('no1', '05') ;
var upt2 = dc.createUserProcedure('sample@selectEmpBy()') ;
upt2.setPage(3, 1) ;
var upts = dc.createUserProcedures('multi query') ;
upts.add(upt1).add(upt2) ;
$('result').innerHTML = upts.execQuery() ;
*/
</script>
Future Work
a lightweight database abstraction layer suitable for high-load websites where you need the scalable advantages of connection pooling. DBFSlayer talks to clients via JSON over HTTP, meaning it's simple to monitor and can swiftly interoperate with any web framework you choose.
Features At A Glance
- Simple HTTP interface
- JSON-format messages
- Multiple DB adapter (currently tested oracle 9 higher, mssql 2000 higher, mysql 5 higher)
- Connection pooling
- Multithreaded
- Straight-forward configuration
- Simple yet powerful access
Download
https://sourceforge.net/projects/dbfslayers/files/
dbfs_layers_fat.jar include following lib
- jetty 6.1
- servlet 2.5, jsp 2.5
- struts 1.2.9
- json-lib 2.3
- bleujin framework_core_fat.jar(http://sourceforge.net/projects/clientcursordbf/)
- Database JDBC client libraries(offical lib of oracle 9i ,mssql 2000 , mysql 5)
Install
1. download dbfs_layer_web.zip(https://sourceforge.net/projects/dbfslayers/files/)
2. extract dbfs_layer_web.zip
5. download dbfs_layers_fat.jar at 2.dir (https://sourceforge.net/projects/dbfslayers/files/)
6. configure webapps/simple/WEB-INF/default-config.xml
6. execute java -jar dbfs_layer_fat.jar
7. connect http://localhost:8080/simple/index.htm
Configuring Your Database
view webapps/simple/WEB-INF/default-config.xml
Example Usage
run : java -jar dbfs_layers_fat.jar
view : http://localhost:8080/simple/index.htm
<script language="JavaScript">
var dc = new Database(new Session('http://localhost:8080/simple/db.do', 'john'));
var ins = dc.createUserCommand("insert into update_sample values(2, '222')") ;
$('result').innerHTML = ins.execUpdate() + '<br/>\n' ;
var cmd = dc.createUserCommand('select * from update_sample where a < :a') ;
cmd.setPage(3, 1) ; // 1 page per 3 unit
cmd.setParam('a', '3') ;
// var result = cmd.execQuery() ; // excute. return JSON format
$('result').innerHTML += cmd.execQuery() + '<br/>\n';
/* execute procedure example
var upt = dc.createUserProcedure('sample@selectEmpBy()') ;
upt.setPage(3, 1) ;
$('result').innerHTML = upt.execQuery() ;
*/
/* multiple query(same transaction) example
var upt1 = dc.createUserCommand('select * from copy_tblc where no1 < :no1') ;
upt1.setPage(3, 1) ;
upt1.setParam('no1', '05') ;
var upt2 = dc.createUserProcedure('sample@selectEmpBy()') ;
upt2.setPage(3, 1) ;
var upts = dc.createUserProcedures('multi query') ;
upts.add(upt1).add(upt2) ;
$('result').innerHTML = upts.execQuery() ;
*/
</script>
UTF8 Issues
The DBFSlayers JSON requires your data to be in UTF-8 format. This
means your database should be in UTF-8 and it should return UTF-8 for
queries.
Future Work
- Batch MDL - batch insert, update, delete
- Composite Query - select + mdl execute at same transaction
- LOB Datatype support
- JTA support at multiple DB
- Security - add support for HTTPS / HTTP Auth as a basic access control mechanism (security is still primarily handled in the database).
- Round-Robin Dispatching
- Automatic Failover
- Documentation - improvements to the documentation as suggested by the community.
- Testing - better unit tests are in the works
- Feeds/Get-if-modified-since Support - some cumulative stats mechanisms could support mechanisms to only download new log messages or if there is new log messages.
- Language Bindings - the DBSlayer just speaks JSON + HTTP, so many languages should be able to talk to it. We welcome well-written client libraries for any language if you want to share yours.
'Framework > Database' 카테고리의 다른 글
DB Framework 2.0 Short Explain (3) | 2010.03.09 |
---|---|
Framework Cursor (cursor in MySql) (1) | 2010.02.24 |
Framework - client cursor (0) | 2009.03.26 |
Framework - 커서의 선택 .. and (0) | 2009.03.24 |
프로시저 vs SQL (0) | 2009.03.23 |