пятница, 23 июня 2017 г.

Вывод в jxl

 Не забываем полкючить jxl и oracle jdbc драйвер




/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gethbnames;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import jxl.Cell;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

/**
 *
 * @author brudanovom
 */
public class GetHBNames {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException {
        // TODO code application logic here
        Connection con = null;
        Statement stmt = null;
        ResultSet rset = null;
       
        try {
            /*Подключаемся и выполняем запрос*/
        con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.1:1521:SID","user","password");///необходимо в библиртеки проекта добавить драйвер
        stmt = con.createStatement();
        rset = stmt.executeQuery (
                "select " +
                "pc.l_name, pc.f_name, pc.m_name, pc.sex, pc.d_birth "
                "from table1 pe " +
                ",table2 pc " +
                "where 1=1 " +
                "and pe.id = pc.id " +
                "and pe.d_out>sysdate " +
                ")"
                );
       
        /*создаем EXCEL книгу*/
        String fileName = "TodayNames.xls";
        WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));
        workbook.createSheet("Sheet1", 0);
        WritableSheet excelSheet = workbook.getSheet(0);
       
        /*Заполняем книгу из открытого oracle курсора*/
        int i = 0,j = 0;
        int rowcnt = rset.getMetaData().getColumnCount();
        while (rset.next ())
        {
            for(j=0;j<=rowcnt-1;j++)
            {   Label label = new Label(j, i, rset.getString(j+1));
               
                excelSheet.addCell(label);
            }
            i++;
        }
           
        /*Закрываем книгу*/
        workbook.write();       
        workbook.close();

        } catch (WriteException | IOException | SQLException ex) {
            Logger.getLogger(GetHBNames.class.getName()).log(Level.SEVERE, null, ex);
            }
        finally{ //В любом случае, даже при ошибке отключаемся от БД oracle
                    if (rset!=null){rset.close();}
                    if (stmt!=null){stmt.close();}
                    if (con!=null){con.close();}
                    System.out.println ("END");
                }

    }
}

Java to Oracle DB Thin Client

Подключаем oracle JDBC



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package thinclient;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author brudanovom
 */
public class ThinClient {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException {
        // TODO code application logic here
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.1:1521:SID","user","password");///необходимо в библиртеки проекта добавить драйвер
        Statement stmt = con.createStatement();
        ResultSet rset = stmt.executeQuery ("select distinct(SHORT_NAME) SHORT_NAME from table");
        while (rset.next ())
        System.out.println (rset.getString ("SHORT_NAME"));
        rset.close();
        ResultSetMetaData  rsetData = rset.getMetaData();
        Float d = rset.getFloat(1);
        String val = d.toString();
       
               
        stmt.close();
        con.close();
    }
}

Java TCP Client

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tcpclient;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 *
 * @author brudanovom
 */
public class TcpClient {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws UnknownHostException, IOException {
    String answer = "";     
try
{
  Socket clientSocket = new Socket("192.168.1.1", 5200);///соединяемся
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  outToServer.writeBytes("-1000");///посылаем команду -1000 на cервер
  clientSocket.shutdownOutput();//без закрытия потока сервер не получает команду на получение  
  BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  answer = inFromServer.readLine(); //ловим ответ с сервера
  outToServer.close(); //закрываем потоки
  inFromServer.close();
  clientSocket.close();
  clientSocket = null; //на всякий случ. обнуляем указатели(3 команды new = 3 команды null)
  outToServer = null;
  inFromServer = null;
}
catch(Exception e)
{
 answer = "-20000";  
}
finally
{
      System.out.println(answer); //возвращаем его
}
    }
}