You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by do...@cocoon.apache.org on 2004/05/13 09:57:59 UTC

[Cocoon Wiki] Updated: Steph

   Date: 2004-05-13T00:57:59
   Editor: 194.76.195.78 <>
   Wiki: Cocoon Wiki
   Page: Steph
   URL: http://wiki.apache.org/cocoon/Steph

   no comment

Change Log:

------------------------------------------------------------------------------
@@ -1,72 +1,72 @@
-===  Howto use a PostgreSQL database containing images (store and retrieve). ===
-
-
-In this example, images are stored in a database, more precisely in the table images which looks like:
-
-|| Colonne || Type  
-|  imgname  | text   
-|  img      | bytea  
-
-
-The type bytea stands for the binary one : 'bytes array'. 
-===  Why choosing the byte array type ? ===
-
-First of all, I must say that I the method to retrieve images from the DB using byte array does not need to write any java code (see 2) ).
-Also, using byte array allows you to save your images when you do a dump of your base (it's more complex with blobs).
-===  1) How to store an image ===
-
-As I don't know cocoon so well I decided to wrote a little program in JAVA which will be able to do this for me.
-I choose JAVA because I wanted to know how to use JDBC and then, I expect it will be easier to move it into an XSP once I have understood how it work.
-
-You will find the program in the attached file.
-
-This file contains also a simple method to retrieve an image from the database which helped me to know whether the first method was right or not.
-===  Why not doing it simply with "insert into images values ....." ? ===
-
-An image is composed of a lot of bytes, so you won't do "INSERT INTO images VALUES ("my_image", milion_of_chars);" 
-(Once the program downloaded and an image inserted in the DB, just try to select your image and you will see how tall is the field containing the bytea )
-===  2) How to retrieve an image using  COCOON ? ===
-
-I used '''DataBase Readers''' to do this. As I told you earlier, there is no need to use JAVA.
-You will find the complete documentation about DataBase Readers [http://cocoon.apache.org/2.1/userdocs/readers/database-reader.html here].
-
-
-Even if I found my way through it took me a little time to understand the syntax so this is an example:
-I will consider that you connection to the postgresql is pooled and named : 'my_pooled_connection'.
-If you want to do :
-
-'''SELECT img FROM images WHERE imgname = 'name_given_in_the_url';'''
-
-You should add to your sitemap (at the right place) :
-
-[[BR]]<!--- components --->
-[[BR]]<map:components>
-[[BR]] <map:readers default="resource">
-[[BR]]   <map:reader name="databasereader" src="org.apache.cocoon.reading.DatabaseReader">
-[[BR]]    <use-connection>my_pooled_connection</use-connection>
-[[BR]]    </map:reader>
-[[BR]]  </map:readers>
-
-[[BR]]<!--- pipeline --->
-[[BR]]</map:components>
-[[BR]]<map:match pattern="images/*.jpg">
-[[BR]]  <map:read type="databasereader" src="{1}"  mime-type="image/jpg">
-[[BR]]    <!-- option sitemap parameters -->
-[[BR]]   <map:parameter name="table" value="images"/>
-[[BR]]   <map:parameter name="image" value="img"/>
-[[BR]]    <map:parameter name="key" value="imgname"/>
-[[BR]]  </map:read>
-[[BR]]</map:match>
-
-So when you do : '''http://my_server:8888/path_to_my_app/images/my_image.jpeg''' , you will see the image stored in the DB under the name of "my_image". 
-
-
-
-------------------
-
-You will be please to correct this page if you find any mistake.
-
-Stephane
-[[BR]]
-[[BR]]
-'''Attachment:''' attachment:InsertImages.java [[BR]]
+===  Howto use a PostgreSQL database containing images (store and retrieve). ===
+
+
+In this example, images are stored in a database, more precisely in the table images which looks like:
+
+|| Colonne || Type  
+|  imgname  | text   
+|  img      | bytea  
+
+
+The type bytea stands for the binary one : 'bytes array'. 
+===  Why choosing the byte array type ? ===
+
+First of all, I must say that I the method to retrieve images from the DB using byte array does not need to write any java code (see 2) ).
+Also, using byte array allows you to save your images when you do a dump of your base (it's more complex with blobs).
+===  1) How to store an image ===
+
+As I don't know cocoon so well I decided to wrote a little program in JAVA which will be able to do this for me.
+I choose JAVA because I wanted to know how to use JDBC and then, I expect it will be easier to move it into an XSP once I have understood how it work.
+
+You will find the program in the attached file.
+
+This file contains also a simple method to retrieve an image from the database which helped me to know whether the first method was right or not.
+===  Why not doing it simply with "insert into images values ....." ? ===
+
+An image is composed of a lot of bytes, so you won't do "INSERT INTO images VALUES ("my_image", milion_of_chars);" 
+(Once the program downloaded and an image inserted in the DB, just try to select your image and you will see how tall is the field containing the bytea )
+===  2) How to retrieve an image using  COCOON ? ===
+
+I used '''DataBaseReaders''' to do this. As I told you earlier, there is no need to use JAVA.
+You will find the complete documentation about DataBaseReaders [http://cocoon.apache.org/2.1/userdocs/readers/database-reader.html here].
+
+
+Even if I found my way through it took me a little time to understand the syntax so this is an example:
+I will consider that you connection to the postgresql is pooled and named : 'my_pooled_connection'.
+If you want to do :
+
+'''SELECT img FROM images WHERE imgname = 'name_given_in_the_url';'''
+
+You should add to your sitemap (at the right place) :
+
+[[BR]]<!--- components --->
+[[BR]]<map:components>
+[[BR]] <map:readers default="resource">
+[[BR]]   <map:reader name="databasereader" src="org.apache.cocoon.reading.DatabaseReader">
+[[BR]]    <use-connection>my_pooled_connection</use-connection>
+[[BR]]    </map:reader>
+[[BR]]  </map:readers>
+
+[[BR]]<!--- pipeline --->
+[[BR]]</map:components>
+[[BR]]<map:match pattern="images/*.jpg">
+[[BR]]  <map:read type="databasereader" src="{1}"  mime-type="image/jpg">
+[[BR]]    <!-- option sitemap parameters -->
+[[BR]]   <map:parameter name="table" value="images"/>
+[[BR]]   <map:parameter name="image" value="img"/>
+[[BR]]    <map:parameter name="key" value="imgname"/>
+[[BR]]  </map:read>
+[[BR]]</map:match>
+
+So when you do : '''http://my_server:8888/path_to_my_app/images/my_image.jpeg''' , you will see the image stored in the DB under the name of "my_image". 
+
+
+
+------------------
+
+You will be please to correct this page if you find any mistake.
+
+Stephane
+[[BR]]
+[[BR]]
+'''Attachment:''' attachment:InsertImages.java [[BR]]