2008年10月14日火曜日

MySQLで接続中のスレッドや実行中のSQLを確認する

MySQLで、接続中のスレッドや実行中のSQLを確認するには以下のようにすれば良い。

mysql> show processlist;
+-----+------+-----------------+----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------------+----------+---------+------+-------+------------------+
| 270 | user | localhost:19549 | dbname | Query | 0 | NULL | show processlist |
+-----+------+-----------------+----------+---------+------+-------+------------------+
1 row in set (0.00 sec)

MySQLでログイン中のユーザーを確認する

ログイン中のユーザーを確認するには以下のようにすると良い。

mysql>select USER();
+---------------+
| USER() |
+---------------+
| user@localhost |
+---------------+
1 row in set (0.03 sec)

2008年10月13日月曜日

MySQLのコメント

MySQLでコメント文を書く方法と注意点を述べる。

コメントスタイルは以下の3つ。


① #(行末まで)、
② --(行末まで)、
③ /*(行中または複数行)*/

をサポートしている。

ここで注意だが、

--(ダッシュ2つ)のコメントスタイルでは、2 つ目のダッシュの後にスペースを 1 つ以上挿入する必要がある。


これを知らずに苦労した経験があるので、注意すること。

MySQLでデータベース一覧と表一覧を確認する

MySQLでデータベース一覧、表一覧、表のフィールドを見る方法をメモしておく。

・データベース一覧はshow databasesを用いる。
・表一覧はshow tablesを用いる。

-- データベース一覧の表示
mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bookshop |
| foods |
| mysql |
| sqldrill |
+--------------------+
5 rows in set (0.00 sec)

-- テーブル一覧の表示
mysql>show tables from foods;
+-----------------+
| Tables_in_foods |
+-----------------+
| foodslist |
+-----------------+
1 row in set (0.06 sec)

-- フィールド一覧の表示
mysql>show fields from foods.foodslist;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| foodname | varchar(30) | YES | | NULL | |
| maker | varchar(30) | YES | | NULL | |
| category | varchar(20) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

2008年10月9日木曜日

DBViewerプラグイン

今日はEclipseのDBViewerプラグインを使用してみた。

DBViewerPluginを右クリックして「登録」を選択。すると、
データベース定義名とJDBCドライバーを登録するウィンドウが表示されるから、
必要事項を記入。

データベース定義の接続情報の設定では以下のように入力(DBにMySQLを使用している場合)。

接続文字列の箇所では以下のを環境に合わせて設定。

jdbc:mysql://:3306/

例えば、ローカルでデータベース名がDataBaseならば
→localhost
→DataBase
と設定する。

これで、EclipseからSQL文を実行し、テーブルを作成したりできるようになる。

2008年10月6日月曜日

数値と文字列を通貨の出力形式で出力する

数値を通貨の出力形式で出力するにはNumberFormatクラスのgetCurrencyInstance(Locale.フィールド)メソッドを用いる。

例えば、2000という数値を¥2,000という出力形式(文字列)で出力させたい場合、以下のメソッドを用いるとよい。

public toYen(long number){
 NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
  return nf.format(number);
}

さて、long型の整数値はこれでよいが、webアプリではフォームからの入力を文字列で受け取る。そのため、文字列として与えられた数字を上記のような形式で出力したい場合が多いだろう。その場合は、上記のメソッドをオーバーロードした以下のメソッドを用いると良い。

public toYen(String number){
 NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
  return nf.format(Integer.valueOf(number).intValue());
}

これは、ただ単に、文字列numberをInteger.valueOf(number).intValue()という操作を通して整数値に変換しているだけ。

表の基本形

HTMLで基本的な表を作成する。

<table border="外枠の大きさ">
  <tr>
   <th>見出し</th>
  </tr>
  <tr>
   <td>データ</td>
  </tr>
</table>

ここで、それぞれのタグの説明。
<tr></tr>は横1列を表す。
<th></th>はセルの見出し用。
<td></td>はセルのデータ用。

アクションタグ

JSPでJavaBeansのオブジェクトを生成する。

<jsp:useBean id="オブジェクト変数"
          scope="スコープ"
          class="クラス"
          type="オブジェクト変数の型"
          beanName="クラス" />

例えば、listというjava.util.Collection型のオブジェクト変数が、requestスコープに格納されている場合は以下のようになる。

<jsp:useBean id="list"
          scope="request"
          type="java.util.Collection<Sample>"/>

2008年10月3日金曜日

HTMLエンコード

大抵の本に載っているが一応。

public class HTMLEncoderUtil {
public static String encode(String aTag) {
if (aTag == null || aTag.equals("")) {
return aTag;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < aTag.length(); ++i) {
if (aTag.charAt(i) == '<') {
sb.append("<");
} else if (aTag.charAt(i) == '>') {
sb.append(">");
} else if (aTag.charAt(i) == '&') {
sb.append("&");
} else if (aTag.charAt(i) == '\'') {
sb.append("'");
} else if (aTag.charAt(i) == '"') {
sb.append(""");
} else {
sb.append(aTag.charAt(i));
}
}
return sb.toString();
}
}

2008年10月2日木曜日

空白文字チェック

/**
* 空白文字チェック(全角スペース・半角スペースの両方をチェック)
*
* @param aValue
* @return
*/
public static boolean checkBlankOrNull(String aValue) {
if (aValue==null || validateMask(aValue.trim(), "^\\s"))
return true;

return isBlankOrNull(aValue);
}

/**
* aValueに空白文字が含まれているかどうかのチェック
*
* @param aValue
* @return 空白文字が含まれていれば真を返す
*/
public static boolean containsBlank(String aValue) {
return validateMask(aValue.trim(), "\\s");
}