2013年5月2日木曜日

JAVA Spring 3.2.2を使ってみた

Springの使い方について、調べてみた。


今回の環境は、
Java 1.6系
Spring 3.2.2
spring-context-3.2.2.RELEASE.jar
spring-context-support-3.2.2.RELEASE.jar
spring-core-3.2.2.RELEASE.jar
spring-beans-3.2.2.RELEASE.jar
spring-expression-3.2.2.RELEASE.jar
Apache Commons
commons-logging-1.1.3.jar

今回作成するもの
実行用クラスとBeanクラス、Spring用設定XMLの3種類です。
今回のサンプルでは、Spring用設定XMLファイルを配置する場所にクラスパスを通してください。

実行用クラスのソース(SpringTest.java)

package sample;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class SpringTest  {
   public static void main(String args[]){
      // アプリケーションコンテキストの読み込み
      ApplicationContext contxt = new ClassPathXmlApplicationContext("applicationContext.xml");
      
      // Beanを取得
      SampleBean bean = (SampleBean)contxt.getBean("target");
      
      // 標準出力へ
      System.out.println(bean.getMessage());
   }
}


Beanクラスのソース(SampleBean.java)

package sample;

public class SampleBean {
 // コンストラクタ
 public SampleBean() {
 }

 /**
  * メッセージ
  */
 private String message;

 /**
  * メッセージ取得メソッド
  * @return
  */
 public String getMessage() {
  return this.message;
 }

 /**
  * メッセージ設定メソッド
  * @param message
  */
 public void setMessage(String message) {
  this.message = message;
 }
}


SQLMapperXMLファイル(User.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
   <bean id="target" class="sample.SampleBean" >
      <property name="message" >
         <value>Hello World!</value>
      </property>
   </bean>
</beans>


今回作成したものは、簡単なサンプルです。

2013年5月1日水曜日

JAVA Mybatis 3.2.2 を使ってみた

Mybatisの使い方について、調べてみた。

使い方は、いくつかあるみたいですが、XMLを利用した方法について
ここでは書きます。

今回の環境は、
Java 1.6系
mybatis mybatis-3.2.2.jar
Driver mysql-connector-java-5.0.4-bin.jar
MySQL 5.0

MySQLは、自分のローカル端末にインストールされている
バージョンを使ったため、古いですが最新は、5.6系です。
興味のある方は、Downloadして使ってみてください。
機能的にかなり更新されているはずです。

今回作成するもの
JavaクラスとMybatis用設定XMLファイル、SQLMapperXMLファイルの3種類です。
今回のサンプルでは、Mybatis用設定XMLファイル、SQLMapperXMLファイルを
配置する場所にクラスパスを通してください。

Javaのソース(MybatisTest.java)

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  try {
   String resource = "mybatisConfig.xml";
   InputStream inputStream;
   inputStream = Resources.getResourceAsStream(resource);
   SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
   SqlSession session = sqlSessionFactory.openSession();
   System.out.println(session.selectList("User.select"));
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}


Mybatis用設定XMLファイル(mybatisConfig.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/groupware"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="User.xml"/>
  </mappers>
</configuration>


SQLMapperXMLファイル(User.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="User">
  <select id="select" parameterType="java.util.HashMap" resultType="java.util.HashMap">
    SELECT
      USERID,
      USERNAME,
      EMAIL,
      TEL,
      PASSWORD
    FROM
      USER
  </select>
</mapper>


今回作成したものは、簡単なサンプルです。
Javaのクラスは、環境にあわせて変えて試してください。

2011年7月2日土曜日

Excel シートの存在チェック2

ワークブックにシートが存在するかチェックする関数

パラメータは、ワークブックのオブジェクトとシート名
パラメータで渡したワークブックに、パラメータで渡したシート名が存在する場合にtrueが返却される。存在しない場合は、falseが返却される。

Public Function sheetExist(book As Workbook, name As String)
    
    Dim ws As Worksheet
    Dim flag As Boolean
    
    For Each ws In book.Worksheets
        If ws.name = name Then
            flag = True
            Exit For
        End If
    Next ws
    sheetExist = flag
End Function


シートを追加する処理などでチェックをしておくと、エラーを回避できます。

2011年6月28日火曜日

Excel シートの存在チェック

Public Function sheetExist(name As String)
   
    Dim ws As Worksheet
    Dim flag As Boolean
   
    For Each ws In Worksheets
        If ws.name = name Then
            flag = True
            Exit For
        End If
    Next ws
    sheetExist = flag
End Function

2011年6月21日火曜日

Excel オートシェイプ メモ用

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 54#, 13.5, 54#, 13.5). _
        Select
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
    ExecuteExcel4Macro "FORMULA(""=R[1]C"")"
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "6/21/2011"
    Range("A2").Select
    ActiveSheet.Shapes("Rectangle 1").Select
    Range("C4").Select
    ActiveSheet.Shapes("Rectangle 1").Select
    ExecuteExcel4Macro "FORMULA(""=RC"")"
    Range("C6:C7").Select
    Range("C7").Activate
    ActiveSheet.Shapes("Rectangle 1").Select
    Selection.ShapeRange.Line.Weight = 1.25
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Fill.OneColorGradient msoGradientVertical, 1, 0.23
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 63#, 54#, 54#, 13.5). _
        Select
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 33
    Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 255)
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Fill.Patterned msoPattern5Percent
    ActiveSheet.Shapes.Range(Array("Rectangle 2", "Rectangle 1")).Select
    Selection.ShapeRange.Group.Select

2011年6月19日日曜日

JAVA Log4J 1.2.17 を使ってみた!5

今日は、ログファイルのローテーションの方法を書きます。

環境周りは、省略します。
環境を確認したい方は、
こちらこちら


注目するのは、4行目から10行目の内容
<appender ~>~</appender>
この内容がログファイルのローテーションの方法を設定している。

<appender name="File" class="org.apache.log4j.DailyRollingFileAppender">
nameには、appenderの名前を指定する。
(ファイルとコンソール出力の時と同じ)
classには、org.apache.log4j.DailyRollingFileAppenderを指定する。
このクラスがファイルに出力し、ローテーションするためのクラスとなる。

<param ~ />に設定可能な項目は、
DatePattern、File、Append、BufferedIO、BufferSize、Threshold、ImmediateFlush、Encoding
DatePattern以外は、FileAppenderで説明したので省略します。

DatePatternのvalueに設定する内容によって、ローテーションするタイミングが変わります。


ローテーションのタイミングについては、
'.'yyyy-MM         月が変わるごと
'.'yyyy-ww         週が変わるごと
'.'yyyy-MM-dd      日が変わるごと
'.'yyyy-MM-dd-a    午前と午後が変わるごと
'.'yyyy-MM-dd-HH   1時間ごと


他のparamについて詳しく知りたい方は、こちら

<layout ~></layout>
レイアウトについても、前回までに説明したので省略します。


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
   <appender name="File" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="File" value="C:/log4j.log" />
      <param name="DatePattern" value="'.'yyyy-MM-dd" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
      </layout>
   </appender>
   <appender name="Console" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
      </layout>
   </appender>
   <root>
      <level value="debug" />
      <appender-ref ref="Console" />
      <appender-ref ref="File" />
   </root>
</log4j:configuration>


2011年6月18日土曜日

JAVA Log4J 1.2.17 を使ってみた!4

今日は、コンソールの出力方法を書きます。

環境周りは、省略します。
環境を確認したい方は、
こちらこちら


注目するのは、10行目から14行目の内容
<appender ~>~</appender>
この内容がコンソールに出力する内容を設定している。

<appender name="Console" class="org.apache.log4j.ConsoleAppender">
nameには、appenderの名前を指定する。(ファイル出力の時と同じ)
classには、org.apache.log4j.ConsoleAppenderを指定する。
このクラスがコンソールに出力するためのクラスとなる。

<layout ~></layout>
レイアウトについては、前回説明したので省略します。


明日以降に、ログファイルのローテーションについて書きます。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
   <appender name="File" class="org.apache.log4j.FileAppender">
      <param name="File" value="C:/log4j.log" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
      </layout>
   </appender>
   <appender name="Console" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p %c - %-5m [%t] (%F:%L)%n"/>
      </layout>
   </appender>
   <root>
      <level value="debug" />
      <appender-ref ref="Console" />
      <appender-ref ref="File" />
   </root>
</log4j:configuration>