torek, 20. oktober 2015

Generiranje QR kode v PL/SQL-u

Vse bolj pogosto "QR kodo", je mogoče generirati tudi s pomočjo PL/SQL-a na podatkovni bazi Oracle na kateri je nameščena vsaj Java verzija 1.5 navzgor.

Za delovanje je potrebno predhodno naložiti tri jar datoteke s pomočjo orodja Loadjava.
Jar datoteke dobite na tem naslovu: knjiznice.zip.
Datoteke odzipajte v neko mapo ter jih naložite v podatkovno bazo:


V pl/sql-u je nato potrebno napisati java sored "funkcijo" katera bo sprejemala tekst, ki ga bo qrkoda vsebovala ter vračala kodo kot GIF sličico shranjeno v BLOB podatkovnem tipu.

       
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "QRCodeBean" as
import oracle.sql.BLOB;  
import oracle.sql.*;  
import oracle.jdbc.driver.*;  
import java.sql.*;  
import javax.imageio.ImageIO;  
import java.awt.image.BufferedImage;  
import java.io.ByteArrayOutputStream;  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.OutputStream; 
import java.io.*;
import java.util.*;
import net.glxn.qrgen.QRCode;
import net.glxn.qrgen.image.ImageType; 

public class QRCodeGenerator{  

public static BLOB getQrCode(String value) throws Exception  
{  
    OracleDriver ora = new OracleDriver();  
    Connection conn = ora.defaultConnection();  
    BLOB retBlob = BLOB.createTemporary(conn, true, oracle.sql.BLOB.DURATION_SESSION);  
  
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            out = net.glxn.qrgen.QRCode.from(value).to(ImageType.GIF).stream();
              
            try {  
                java.io.OutputStream outStr = retBlob.setBinaryStream(0);  
                outStr.write(out.toByteArray());  
                outStr.flush();  
            } finally {  
                out.close();  
            }  
           return retBlob;  
}  
}
/    
       

Poleg java stored procedure je potrebno napisati še funkcijo, ki bo klicala zgornjo kodo
       
CREATE OR REPLACE function INSURANCE2.getQRcode(p_text in varchar2) return BLOB as LANGUAGE JAVA  
NAME 'QRCodeGenerator.getQrCode(java.lang.String) return oracle.sql.BLOB';
/

S klicem funkcije se izvede generiranje QR kode.


več o QR kodah dobite tudi tukaj ;)


Ni komentarjev:

Objavite komentar