IT

【Java】JavaでEXCELを読み込む(POI実装)


仕事でどうしてもJAVAからExcelの読取をしたくなったのでそのメモ。
POIというライブラリを使って行う。
オープンソースなので自由に使用できる。
ダウンロードは下記より。
http://poi.apache.org/
自分がDLした最新版jarには「20140208」という日付が付いている。
この記事内で記載する実装もそのjarを使っている。

POIに関しては、ググればそれなりの実装例や使い方が出てくるが、
紹介記事が古くて現在のAPI仕様とあってなかったりする。
厳密にはapacheが公開しているAPI Documentを参照するべきなのだろう。
(英語だから個人的には読めないんだけど)


テキストファイルの中身を見る派閥

エディタで見るよ派━━┳━━メモ帳で十分だろ派 ┣━━サクラエディタ使うだろjk派 ┣━━秀○使うだろjk派 ┃ ┗━そもそもいつの間にか関連付けさ

【ORACLE】テーブルを使用しているソースやマテビューの調査(+α)


DBA_TABLESを基準にしてFUNCTIONやPROCEDUREのソースを調査し

そのテーブルが使用されているかどうかを検査するSQL。

このSQLの返却結果の中でOBJ_USING_COUNTが1以上のテーブルは

少なくともどこかで使われています。

⇒そのテーブルをDROPして削除する/ALTERして項目を削除する等すると

 該当FUNCTION、PROCEFDUREがINVALID(コンパイルエラーの意)になる

 


【Java】文字エンコーディングの変換(UTF-8⇒SJIS)


テキストファイルのエンコーディングを UTF-8⇒Shift-JIS(MS932)に変換する自作プログラム。 サクラエディタとかのテキストエディタとかに標準で備わってはいるが 元のテキストファイルが重いとメモリ食うので、自作しました。 自分専用の色が強いですが。

 



SEの変な単語の読み方


192.168.0.~

⇒私は「いっくに、いちろっぱ~」と読むんですが、

 特に168の部分は「いちろくはち」とそのまま読む人もいますね。


【ORACLE】他サーバやマシンからの接続セッションを特定する方法


V$SESSION.MACHINEにマシン名で検索をかけて、

あとはLOGON_TIMEやV$SQL.SQLTEXT等を見ればある程度わかるけど、

そのあたりがはっきりしない場合に接続元マシンから探り当てる方法。

※例によって経験則なので確実かどうかわかりません

※Linuxを前提にしていますがWindowsでも似た考えでできると思います


【ORACLE】セッションが実行中のSQLを調べる


ここに挙げたやり方に則り
実際によく使ってる簡易的にセッションの情報を取得するSQL。
リンク先で挙げたようなV$SESSIONとV$SESSION_LONGOPSに加えて
V$SQLを結合してSQL_FULLTEXTを取得します
(そのセッションがどんなSQL投げてるのか調べる)。


 


javaによるHTTP接続(UserAgentの偽装)

ここに書いた javaによるHTTP接続のサンプルにおける②と③の間で、 con.setRequestParameter("User-Agent" , "iPhone***"); というような実装を施すと、 UserAgent情報を上書きしてタイ

javaによるHTTP接続サンプル


javaでHTTP接続するプログラムのサンプル。

 

 // ①URLを生成

 URL url = new URL("/");

 

 // ②接続してHttpURLConnectionを生成

 HttpURLConnection con = (HttpURLConnection)new URL(url).openConnection();

 

 // ③InputStreamからレスポンスをもらう

 BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"Shift-JIS"));

 

 // ④まわす

 while(br.ready()) {

  System.out.println(br.readLine());

 }

 

 // ⑤とじる

 con.disconnect();

 br.close();

 

 


JDBC接続サンプル(+雑談)


JDBCで接続してSQL発行するプログラムのサンプル。(データソースを使う)

その辺探せばどこにでもあるけど個人の備忘録として。

 // ①データソースの生成

 OracleConnectionPoolDataSource opds = new OracleConnectionPoolDataSource();

 

 // ②DBのURLを設定

 opds.setURL("jdbc:oracle:thin:@192.168.0.100:1521:TESTDB");

 

 // ③DB接続ユーザーを設定

 opds.setUser("TESTDBUSER");

 

 // ④DB接続パスワードを設定

 opds.setPassword("TESTDBPASS");

 

 // ⑤Connection生成

 Connection con = opds.getConnection();

 

 // ⑥Statement生成

 Statement st = con.createStatement();

 

 // ⑦SQL実行+ResultSetをもらう

 ResultSet rs = st.executeQuery("SELECT ID,NAME FROM EMP");

 

 // ⑧とりあえず全フェッチ

 while(rs.next()) {

  //何もしない

 }

 

 // ⑨close

 st.close();

 rs.close();

 con.close();