10 Kasım 2011 Perşembe

java.lang.IllegalArgumentException


java.lang.IllegalArgumentException: illegal component position
at java.awt.Container.addImpl(Unknown Source)
at javax.swing.JLayeredPane.addImpl(Unknown Source)
at javax.swing.JDesktopPane.addImpl(Unknown Source)

DesktopPane ve InternalFrame içeren classlarımda

Frame oluştuğunda tekrar oluşturulmaması için


if (getForm().isShowing()) {
getForm().toFront();
System.out.println("frame is already opened...");
} else {
System.out.println("open singleton frame");
Program.desktopPane.remove(getForm());
                                Program.desktopPane.add(getForm());

romeve yapılarak tekrar eklenmesi gerekir. Yoksa hata oluşmakta.



3 Kasım 2011 Perşembe

Jasperreport ile raporlama örneği

MySQL ile raporlama java uygulaması.

Bu örnek için projeye aşağıdaki jarlar eklenmelidir.
https://rapidshare.com/files/826483124/jasperLib.rar

Raporun düzenlemesi i-report ile yapılmıştır.
Baglan, Frame isminde iki class ile oluşmakta.

Projenin dosyası aşağıdaki linkde yer almakta.
https://rapidshare.com/files/1538633838/Raporlama.rar?bin=1

//Baglan.java

import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

public class Baglan {
private  Connection con = null;

public  Connection getCon() throws  InstantiationException, IllegalAccessException {
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "Sürücü Bulunamadı!","Hata",JOptionPane.ERROR_MESSAGE);
System.err.print("Sürücü bulunamadi");
System.err.println(e.getMessage());
}
try{
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbismi","root","123456");1
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Bağlantı Kurulamadı!","Hata",JOptionPane.ERROR_MESSAGE);
e.getMessage();
System.exit(0);
}
return (con);
}
}

//Frame.java


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;

public class Frame extends JFrame {

public static Connection con=null;
public static ResultSet rs;
public static Baglan baglan=new Baglan();

public Frame() {
getContentPane().setLayout(null);

JButton btnNewButton = new JButton("Raporla");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String reportFile = "c:\\reports\\report1.jrxml";

       runReport(reportFile);
}
});
btnNewButton.setBounds(10, 50, 91, 23);
getContentPane().add(btnNewButton);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Frame frm = new Frame();
frm.setBounds(100, 100, 200, 200);
frm.setVisible(true);
}

public static void runReport(String reportFile) {
   try {
       JasperDesign jasperDesign = JRXmlLoader.load(reportFile);
       JasperReport jasperReport = JasperCompileManager
               .compileReport(jasperDesign);
     
       rs = null;
con=baglan.getCon();
 Statement stmt=con.createStatement();
 String sql="SELECT T_ADI FROM TABLE";

 rs=stmt.executeQuery(sql);
     
       JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);

       String lsQuery="asd";

       Map parameters = new HashMap();
       parameters.put("strQry", lsQuery);
     
       JasperPrint jasperPrint = JasperFillManager.fillReport(
               jasperReport, parameters, resultSetDataSource);
       JasperViewer.viewReport(jasperPrint, false);
   } catch (Exception e) {
    JOptionPane.showMessageDialog(null, "Rapor Bulunamadı...");
       e.printStackTrace();
   }
}
}

Jasperreport Raporlamada Hata


java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap

java.lang.NoClassDefFoundError: org/apache/commons/beanutils/MethodUtils

Bu hatalardan birini alıyorsanız. Link de bulunan jasper ile ilgili jarları kullanmanız gerekmekte.

https://rapidshare.com/files/826483124/jasperLib.rar

JFrame Başlık - Title Bar gizleme

JFrame Başlık - Title Bar gizleme


frame.setUndecorated(true);

Oracle Export İmport

Export : Database in dışarı aktarılması işlemidir.

Bir bat dosyası oluşturarak;
exp usename/password@database_name file=backup.dmp log=backup.log statistics=none 
Pause;
yazdığımızda database belirlenen kriterlere göre dışarı dump dosyasına alacaktır

İstisnalar:

Sadece belirli kullanıcıyı almak için; OWNER=ADMIN .
Tüm kullanıcıları almak için;FULL=Y 
Tabloları verilerine ihtiyacınız yok ise boş halini almak için; ROWS=NONE
Bazı durumlarda sadece belirli tabloları almak için ; TABLES= TABLE1,TABLE2 yazarak


İmport : Database in içe aktarılması işlemidir.


imp usename/password@database_name file=backup.dmp log=backup.log fromuser=auser touser=buser
Pause;


Yine TABLES kriteri import da kullanılabilir.

Tamamı alınmış bir database dump ın içinde sadece belirli tabloları import etmek için

Oracle Replace Kullanımı


İlgili kolonda bazı veriler düzenlenmek istendiğinde;

Aşağıdaki örnek; KOD alnında " . " geçenleri "" temizleyecek ve update edecektir.

UPDATE ISLEM
SET  KOD= REPLACE (KOD,'.','')
Şekil1 : Mevcut Hali

Şekil2: Update edilmiş Hali



Oracle daki tablo ve kolonları listelemek


Oracle da user_tab_ ile başlayan tablolar

kullanıcıya ait tabloları (owner), tablolara ait kolonları enson değişiklik bilgilerini içerir.

select  table_name, column_name, data_type, data_length, column_id
from user_tab_columns
where table_name like '%'
order by table_name,column_name;

Bu sql ile aşağıdaki sonuç alınacaktır.