JSP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
JSP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Haziran 2008 Cuma

JSP - Oracle - Array Gonderme

Bazı durumlarda JSP sayfamızdan Oracledaki procedurumuze array gondermek isteyebiliriz. Bunun icin ilk olarak yapmamız gereken Oracle'da bir array type tanımlamak.

CREATE OR REPLACE TYPE INTEGERARRAYTYPE_TY AS TABLE OF INTEGER

Daha sonra Procedurumuzun parametre kismina bu array tipinde bir degisken yazacagiz:


CREATE OR REPLACE FUNCTION INSERT_LINE(vLineCode IN VARCHAR, arrStations IN INTEGERARRAYTYPE_TY)

Daha sonra JSP sayfamızdan Array ile ilgili işlemleri yapmamız gerekiyor.
İlk olarak jsp sayfamızda ilgili sınıfları import edelim:


<%@page language="java" import="oracle.sql.ARRAY"%>
<%@page language="java" import="oracle.sql.ArrayDescriptor">


Daha sonra arrayimizi olusturup, import ettigimiz sinifa ait nesneleri olusturalim.


Integer arrStations[] = new Integer[3];
arrStations[0]= 0;
arrStations[1]= 1;
arrStations[2]= 2;

ArrayDescriptor desc1 = ArrayDescriptor.createDescriptor("INTEGERARRAYTYPE_TY",Conn);
ARRAY input1 = new ARRAY(desc1, Conn, arrStations);


ArrayDescriptor nesnesi olustururken, createDescriptor metodunu kullaniyoruz. Bu metod 2 parametre aliyor. İlki bizim Oracle da olusturdugumuz integer array tipi, digeri ise jspden oracle'a baglanirken kullandigimiz Connection sınıfından türetilmis Conn nesnesi.

Conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE",
"IETT","****");

Buraya kadar olan islemlerde arrayimiz jsp sayfamizda olustu. Sirada, bunu gonderme islemi var.



CallableStatement cstmt = null;
String sql = "{call ? := INSERT_LINE(?,?)}";
try
{
cstmt = Conn.prepareCall(sql);
cstmt.setString(2,strLineCode_tr);
cstmt.setArray(3,input1);
cstmt.registerOutParameter(1,Types.INTEGER);
int b = cstmt.executeUpdate();
int sonuc = cstmt.getInt(1);

}
catch(Exception e) {}
finally {}


CallableStatement kullaniyoruz burada. Bu sinifin setArray fonksiyonunu cstmt nesnesinden cagiriyoruz. Bu metod 2 parametre aliyor. Ilki parametre sirasi, insert_line oracle fonksiyonunun 2.parametresi oluyor bu array. Return degeri ilk parametre oldugu icin dogal olarak sirasi 3 oluyor. setArray metodunun 2.parametresi ise ARRAY sınıfından türetilen nesne oluyor. Bu da yukarıda önceden ürettiğimiz ARRAY sınıfına ait input1 nesnesi.

Bu sekilde arrayimizi oracleda bir fonksiyona gondermis olduk. Biraz zahmetli bir ise benziyor. Eger daha performansli ve kolay bir yol bulursam yine paylasacagim.

17 Şubat 2008 Pazar

Bean

Java'da

Kullanmak istediğimiz class'ı jsp dosyalarımızın bulunduğu ana klasörden WEB-INF/classes klasörüne atmamız gerekiyor. Eğer böyle bir klasör yoksa, bu klasörü siz oluşturun. Mesela:

E:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\fuat\WEB-INF\classes

Daha sonra package'imizin adini alan klasörü de üstteki klasör içinde oluşturalım. Örnek IETT olsun.

E:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\fuat\WEB-INF\classes\iett\

daha sonra, bus.class dosyamızı üstteki klasöre atalım. 
Şimdi sıra geldi bu class dosyasını jsp dosyamıza include etmeye.
JSP dosyamızı açıp,

< jsp:usebean id="db" class="iett.bus">
<% db.setId(5); db.setPlate("ahmet"); out.print(db.getId()); out.print(db.getPlate()); %> 

yazdık mı, b.jsp olarak kaydedip çalıştırdık mı, bizden mutlusu yoktur.
( ha, tabi class olarak kaydettik ya o classtaki üstte kullandığımız setId, setPlate, getInfo metodları olacak tabi ! )



JSP'ye Giriş

Java Server Pages, Java dilinin web'e uyarlanmış versiyonudur. Servlet'lerden farklı olarak JSP'ler HTML ile iç içedirler. Sayfanın bir kısmında HTML, bir kısmında JSP kullanabilirsiniz.

İlk olarak Tomcat6'yı sistemimize kuruyoruz :

http://godel.cs.bilgi.edu.tr/apache/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.zip

Sonrasında, Tomcati kurduğumuz dizinde bin/ klasöründe tomcat6.exe yi çift tıklayarak serverımızı çalıştırıyoruz.
"E:\Program Files\Apache Software Foundation\Tomcat 6.0\bin"

daha sonra 
E:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\
klasörüne "fuat" adında bir klasör olusturuyoruz.

Bu klasör içerisine a.jsp adlı jsp dosyamızı kaydediyoruz.

a.jsp
<% out.println("AFS"); %>

E:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\fuat\a.jsp olarak kaydettik.

Browserımızı açtık ve şunu girdik

http://localhost:8080/fuat/a.jsp

ve jsp dosyamızı bu şekilde çalıştırmış olduk.
Eğer port değişikliği yapmak istiyorsanız, 
E:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml adresinde 8080 olan ilgili port kisimlarini 8089,8091 gibi değerler ile değiştirebilirsiniz.