incubator-empire-db-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Marko <dma...@tiscali.cz>
Subject Re: How to use it with web application?
Date Thu, 25 Sep 2008 10:51:01 GMT
Hi Rainer,
thanks for pointing me to 'Empire-Struts2 Example Application'. Will look at this, but provided

descrition seems to be obvious.

Anothoner question :-) In FAQ is said, that there is schema migration available. How does
it 
work/can be used? Does it work automticly in some way or is there any docs about it?


Thanks once again,
David

Rainer Döbele wrote:
> Hi David,
> 
> in a web-application you should ideally work with connection pooling, which is usually
done by the application server (i.e. Apache-Tomcat).
> 
> We recommend the following:
> 
> 1. create an Application object which is instantiated and initialized once when the web-application
is loaded in the web application server. This can be done via a custom filter class registered
in the web.xml definition file of your web-application. The application object is a singleton.
> 
> 2. use a JNDI context to access a datasource provided by the application server. When
initializing your application obtain a Connection from the data source and initialize your
DB-Objects (create the driver, open the database, check the schema, etc.)
> 
> 3. for each request, obtain a connection from the pool which you can then pass to the
appropriate Empire-db function. When the request finished close the connection which will
effectively return it to the pool.
> 
> I recommend downloading and looking at our Empire-Struts2 Example Application called
DBWebSample provided with the distribution of the empire-struts2-extentions. Even if you don't
intend to use Struts2 as your web application framework it gives a good idea on how to use
Empire-db in a web application. You should particularly look the init() method of the SampleApplication
class. However the sample application does not implement connection pooling - but it can be
easily added.
> 
> Hope this is the kind of answer you expected.
> 
> Regards
> Rainer
> 
> David Marko wrote:
>> Hello,
>> can anyone share some common scenario on how to initialise necessary
>> things in web application using
>> e.g. SpringFramework?
>>
>> ##### Using the code from the EmpireDB Site:
>> config.init((args.length > 0 ? args[0] : "config.xml"));
>> // STEP 1: Get a JDBC Connection
>> Connection conn = getJDBCConnection();
>> In step two the sample creates and initializes a database driver object
>> for the target DBMS. This is
>> HSQLDB by default.
>>
>> // STEP 2: Choose a driver
>> DBDatabaseDriver driver = getDatabaseDriver(config.getDatabaseProvider());
>> Then in step three the database object is opened using the driver. Only
>> when opened, other methods
>> of the database object may be used. Finally we check whether or not our
>> database objects exist.
>>
>> // STEP 3: Open Database and check if tables exist
>> db.open(driver, conn);
>> databaseExists(conn);
>> In order to check existence of the database the sample simply performs a
>> query on the Departments
>> table ("select count(*) from DEPARTMENTS") using the following code:
>>
>> DBCommand cmd = db.createCommand();
>> cmd.select(db.DEPARTMENTS.count());
>> db.querySingleInt(cmd.getSelect(), -1, conn);
>> ###
>>
>> ... should/can be the conn and db initialised using some singleton pattern
>> and used within the
>> application in this way?
>>
>> Thanks for info,
>> David
> 


Mime
View raw message