2013年8月14日水曜日

テーブルの作成とデータ追加:SQLite


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

public class SqliteTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ

  try {
   // JDBCドライバーの指定
   Class.forName("org.sqlite.JDBC");

   // データベースに接続する なければ作成される
   Connection con = DriverManager.getConnection("jdbc:sqlite:../database.db");

   // Statementオブジェクト作成
   Statement stmt = con.createStatement();

   //テーブル作成 すでにある場合は例外が発生
   stmt.executeUpdate("create table nameTable( id integer, name string )");
   
    //テーブルにデータを追加
   stmt.executeUpdate("insert into nameTable values(1, 'sakura')");

  } catch (ClassNotFoundException e) {
   // TODO 自動生成された catch ブロック
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO 自動生成された catch ブロック
   // Connection の例外が発生した時

   e.printStackTrace();
  }
 }
}




Eclipse で SQLite 準備からデータベース作成・接続まで

1.SQLite用のJDBCドライバーをダウンロードしてくる。
https://bitbucket.org/xerial/sqlite-jdbc


2.Eclipse のパッケージエクスプローラからSQLite を使うプロジェクトをせんたくして、

右クリックからプロパティーを選択して、Javaのビルド・パス でライブラリタブを選択して、

外部ライブラリを登録する。
準備完了!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class SqliteTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ

  try {
   // JDBCドライバーの指定
   Class.forName("org.sqlite.JDBC");

   // データベースに接続する なければ作成される
   Connection con = DriverManager.getConnection("jdbc:sqlite:../database.db");

  } catch (ClassNotFoundException e) {
   // TODO 自動生成された catch ブロック
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO 自動生成された catch ブロック
   // Connection の例外が発生した時

   e.printStackTrace();
  }
 }
}


2013年8月13日火曜日

テーブルの中のリンクアドレスをすべて取得する。

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class paint {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ
  
  String url = "http://127.0.0.1/auto/date-top.htm";
  
   try {
   Document document = Jsoup.connect(url).get();
   
            Element table = document.getElementById("tableIdName");
            
            Elements links = table.getElementsByTag("a");
            
            for (Element link : links) {
             String linkHref = link.attr("href"); 
             System.out.println( linkHref );
            }
   
  } catch (IOException e) {
   // TODO 自動生成された catch ブロック
   e.printStackTrace();
  }
 }

}

2012年8月12日日曜日

正規表現:基本

^ 行の先頭 
  
  
[ ]指定内の任意の表現
[ab]

aまたはbにマッチする

 

 
 メタ文字
\s任意の空白文字(スペース、タブ、改行、復帰)1文字にマッチします。
[^\\s]

先頭の空白文字位置文字にマッチする。
 
*直前にある文字が0回以上繰り返された文字列にマッチします。0回でも可なので直前の文字が存在しなくてもマッチする。

2012年8月2日木曜日

ライブ配信送信側のJavaプログラム:JMF


受信側プログラムはJMStudioを利用

import javax.media.*;
import javax.media.control.*;
import javax.media.protocol.*;
import javax.media.format.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

public class TransmitterTest extends JFrame {

    private MediaLocator mediaLocator = null;
    private DataSink dataSink = null;
    private Processor mediaProcessor = null;
    private Format[] formats = new Format[] {
        new VideoFormat( VideoFormat.JPEG_RTP ) };
    private ContentDescriptor descriptor = 
        new ContentDescriptor( ContentDescriptor.RAW_RTP );
    private InputPanel ipanel;
    private static final int PORT=22224;
    private Component ctrl;

  /** Creates a new transmitter frame. */
    public TransmitterTest() {

        super( "Video Transmitter" );
        ipanel = new InputPanel();
        getContentPane().add( ipanel, "Center" );
        pack();
        show();
    }

  /** set locator from Capture Device */
    public void setLocator() {
        try {
            MediaLocator deviceLocator = searchCaptureDevice();
            DataSource source
                = Manager.createDataSource( deviceLocator );
            mediaLocator
             = new MediaLocator( "rtp://" + ipanel.host.getText()
                                  + ":" + PORT + "/video" );
            mediaProcessor = Manager.createRealizedProcessor(
                new ProcessorModel( source, formats, descriptor ) );
            dataSink = Manager.createDataSink(
                   mediaProcessor.getDataOutput(), mediaLocator );

            setControlPanel();
            startTransmitting();
                
        } catch (Exception e) {
            System.err.println( e.toString() );
        }
    }

  /** Search Capture Device for Video */
    public static MediaLocator searchCaptureDevice() {

         Vector list = CaptureDeviceManager.getDeviceList(
                       new VideoFormat( VideoFormat.YUV ) );
         if( list.size() > 0 ) {
             CaptureDeviceInfo info
               = (CaptureDeviceInfo)list.elementAt( 0 );
             return  info.getLocator();
         }
         System.err.println( "No Capture Device" );
         return null;
    }

  /** set Control */
    public void setControlPanel() {

        ctrl = mediaProcessor.getControlPanelComponent();
        getContentPane().add( ctrl, "South" );
        pack();
    }

  /** Starts transmitting the media. */
    public void startTransmitting() throws IOException {

        mediaProcessor.start();
        dataSink.open();
        dataSink.start();
    }

  /** start here */
    public static void main(String[] args) {

        TransmitterTest transmitter = new TransmitterTest();
    }

  /** Input receive host name, port number */
    class InputPanel extends JPanel implements ActionListener {

         public JLabel label = new JLabel( "Receiver Adress:" );
         public JTextField host = new JTextField( "", 16 );
         public JButton transmit = new JButton( "Transmit" );

         InputPanel() {
              add( label );
              add( host );
              add( transmit );
              transmit.addActionListener( this );
         }

      /** Event Processing */
         public void actionPerformed( ActionEvent evt ) {

              if( evt.getSource() instanceof JButton ) {
                  if( (JButton)(evt.getSource()) == transmit ) {
                      setLocator();
                  }
              }
         }
    }
}

2012年7月11日水曜日

末尾の改行コード削除

正規表現で末尾の文字列を削除する。
  Pattern pattern = Pattern.compile("\n$");
  
  Matcher matcher = pattern.matcher("Hello World. Hello World.\n");
  
  String strResult = matcher.replaceAll("");
  
  System.out.println(strResult);

SyntaxHighlighter のバージョンアップ

SyntaxHighlighter を Version: 1.5.1 から version 3.0.83 にバージョンアップしてみる。
どちらのバージョンからの文法でも動くようにする。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>dp.SyntaxHighlighter Tests</title>
  <script type="text/javascript" src="scripts3/shCore.js"></script>
  <script type="text/javascript" src="scripts3/shLegacy.js"></script>
  <script type="text/javascript" src="scripts3/shBrushJava.js"></script>
  <link type="text/css" rel="stylesheet" href="styles3/shCoreDefault.css"/>
 </head>
 <body>
  <pre name="code" class="java">
function helloSyntaxHighlighter()
{
 return "hi!";
}
</pre>

  <pre class="brush: java;">
function helloSyntaxHighlighter()
{
 return "hi!";
}
</pre>


  <script type="text/javascript">
   SyntaxHighlighter.all();
   dp.SyntaxHighlighter.HighlightAll('code');

  </script>
 </body>
</html>

function helloSyntaxHighlighter()
{
 return "hi!";
}

function helloSyntaxHighlighter()
{
 return "hi!";
}