import java.util.*;
import java.sql.*;
/**
*
* $#$CELL B2$#$<BR>
*
* テーブル項目$#$REP 8$#$
* $#$KETA A$#$ $#$KETA C$#$$#$REPEND A$#$
*
*/
public class $#$CELL B3$#$ {
/*
* JDBC ドライバクラス名
*/
public static final String JDBCDriverName = DBKankyo.JDBCDriverName;
/*
* JDBC 接続URL
*/
public static final String JDBCURL = DBKankyo.JDBCURL;
/*
* ユーザー名
*/
public static final String JDBCUserName = DBKankyo.JDBCUserName;
/*
* パスワード
*/
public static final String JDBCPassword = DBKankyo.JDBCPassword;
/*
* コネクション
*/
Connection con = null;
/*
* コネクションセット<BR>
*/
public void setConnection(Connection con)
{
this.con = con;
}
/*
* SQL実行<BR>
* @param cmd SQL文
* @return int 0:OK,1:Error
*/
public int execute(String cmd)
{
try
{
int con_flg = 0;
if ( con == null )
{
// ドライバクラスをロード
Class.forName(JDBCDriverName); // MySQLの場合
// データベースへ接続
con = DriverManager.getConnection(JDBCURL,
JDBCUserName,JDBCPassword);
con_flg = 1;
}
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
// 実行
stmt.execute(cmd);
stmt.close();
// データベースから切断
if ( con_flg == 1 )
{
con.close();
}
}
catch (Exception e)
{
e.printStackTrace();
return -1;
}
return 0;
}
/*
* SQLの検索実行<BR>
* @param cmd SQL文
* @return Vector 結果(1レコード1ハッシュマップ)
*/
public Vector selectExecute(String cmd)
{
Vector allData = new Vector();
try
{
int con_flg = 0;
if ( con == null )
{
// ドライバクラスをロード
Class.forName(JDBCDriverName); // MySQLの場合
// データベースへ接続
con = DriverManager.getConnection(JDBCURL,
JDBCUserName,JDBCPassword);
con_flg = 1;
}
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(cmd);
ResultSetMetaData meta = rs.getMetaData();
// 検索された行数分ループ
while(rs.next())
{
HashMap mp = new HashMap();
for(int i = 1 ; i <= meta.getColumnCount(); i ++ )
{
mp.put(meta.getColumnName(i),
rs.getString(meta.getColumnName(i)) );
}
allData.add(mp);
}
// データベースから切断
stmt.close();
if ( con_flg == 1 )
{
con.close();
}
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
return allData;
}
/*
* 検索<BR>
* @param Vector komoku 検索する項目
* @param Vector where 検索条件
* @return int 0:OK,1:Error
*/
public Vector select(Vector komoku,Vector where)
{
// Select文の初め
StringBuffer sqlbuf = new StringBuffer("SELECT ");
// 項目名の羅列
if ( komoku == null )
{
sqlbuf.append("*");
}
else
{
for(int i = 0 ; i < komoku.size() ; i ++ )
{
if ( i > 0 )
{
sqlbuf.append(",");
}
String taisho = (String)komoku.elementAt(i);
sqlbuf.append(taisho);
}
}
// テーブル名が入る
sqlbuf.append(" FROM $#$CELL B3$#$ ");
// 条件式の作成
String wstr = makeWhere(where);
if ( wstr != null )
{
sqlbuf.append(" WHERE " + wstr);
}
return selectExec(sqlbuf.toString());
}
/*
* 追加<BR>
* @param HashMap taisho 対象、NULLのときエラー
* @return int 0:OK,1:Error
*/
public int insert(HashMap taisho)
{
// ハッシュマップに入っている値を受け取り
$#$REP 8$#$ String $#$KETA A$#$ = (String)taisho.get("$#$KETA A$#$");
$#$REPEND A$#$
int out_flg;
// ハッシュマップに入っている値を受け取り
StringBuffer sqlbuf
= new StringBuffer("INSERT INTO $#$CELL B3$#$(");
//==========================//
// 項目名の書き出し //
//==========================//
out_flg = 0;
$#$REP 8$#$ //$#$KETA C$#$の設定
if ( $#$KETA A$#$ != null )
{
if ( out_flg == 0 )
{
out_flg = 1;
}
else
{
sqlbuf.append(",");
}
sqlbuf.append("$#$KETA A$#$");
}
$#$REPEND A$#$
// ") VALUES ("を書き出し
sqlbuf.append(") VALUES (");
//==========================//
// 値の書き出し //
//==========================//
out_flg = 0;
$#$REP 8$#$ //$#$KETA C$#$の設定
if ( $#$KETA A$#$ != null )
{
if ( out_flg == 0 )
{
out_flg = 1;
}
else
{
sqlbuf.append(",");
}
sqlbuf.append("$#$KETA N$#$");
sqlbuf.append($#$KETA A$#$);
sqlbuf.append("$#$KETA N$#$");
}
$#$REPEND A$#$
// おしまい部分
sqlbuf.append(")");
// 実行
return execute(sqlbuf.toString());
}
/*
* 削除<BR>
* @param Vector where 対象、NULLのとき、全削除
* @return int 0:OK,1:Error
*/
public int delete(HashMap where)
{
// SQL文の書き出し
StringBuffer sqlbuf = new StringBuffer("DELETE FROM $#$CELL B3$#$");
if ( where != null )
{
String wstr = makeWhere(where);
if ( wstr != null )
{
sqlbuf.append(" WHERE " + wstr);
}
}
return execute(sqlbuf.toString());
}
/*
* 更新<BR>
* @param HashMap naiyo set句の内容
* @param Vector where 対象、NULLのとき、全削除
* @return int 0:OK,1:Error
*/
public int update(HashMap naiyo,Vector where)
{
// データチェック
if ( naiyo == null )
{
return -1;
}
if ( naiyo.size() <= 0 )
{
return -1;
}
// SQL文の書き出し
StringBuffer sqlbuf = new StringBuffer("UPDATE $#$CELL B3$#$ SET ");
String rec = setOneRec(naiyo);
if ( rec == null )
{
return -1;
}
sqlbuf.append(rec);
String wstr = makeWhere(where);
if ( wstr != null )
{
sqlbuf.append(" WHERE " + wstr);
}
return exec(sqlbuf.toString());
}
/*
* where句を作る
* @param Vector whete
* @return String 結果(1レコード1ハッシュマップで入っている)
*/
public String makeWhere(Vector where)
{
StringBuffer buf = new StringBuffer();
// WHEREデータがない
if ( where == null )
{
return null;
}
// WHEREデータがない
else if ( where.size() == 0 )
{
return null;
}
else
{
// WHEREデータ1行分のとき
if ( where.size() == 1 )
{
HashMap map = (HashMap)where.elementAt(0);
if ( map.get("*zyoken") != null )
{
// 条件文が指定してある
buf.append((String)map.get("*zyoken"));
}
else
{
// 条件文は自分でつくる-1行分
buf.append(whereOneRec(map));
}
}
// 条件文は自分でつくる-複数行アリ=ORでつなぐ
else
{
for(int i = 0 ; i < where.size() ; i ++ )
{
if ( i == 0 )
{
buf.append("( ");
}
else
{
buf.append("OR ( ");
}
buf.append(whereOneRec((HashMap)where.elementAt(i)));
buf.append(" ) ");
}
}
}
return buf.toString();
}
/*
* where句の検索条件のAND1個分を作る
* @param HashMap taisho
* @return String 結果(1レコード1ハッシュマップで入っている)
*/
public String whereOneRec(HashMap taisho)
{
return makeOneRec(taisho," AND ");
}
/*
* set句の更新条件を作る
* @param HashMap taisho
* @return String 結果(1レコード1ハッシュマップで入っている)
*/
public String setOneRec(HashMap taisho)
{
return makeOneRec(taisho," , ");
}
/*
* where句の検索条件のAND1個分を作る
* @param HashMap taisho
* @return String 結果(1レコード1ハッシュマップで入っている)
*/
public String makeOneRec(HashMap taisho,String kugiri)
{
StringBuffer buf = new StringBuffer();
$#$REP 8$#$ String $#$KETA A$#$ = (String)taisho.get("$#$KETA A$#$");
$#$REPEND A$#$
int out_flg = 0;
$#$REP 8$#$ //$#$KETA C$#$の設定
if ( $#$KETA A$#$ != null )
{
if ( out_flg == 0 )
{
out_flg = 1;
}
else
{
buf.append(kugiri);
}
buf.append("$#$KETA A$#$ =");
buf.append("$#$KETA N$#$");
buf.append($#$KETA A$#$);
buf.append("$#$KETA N$#$");
}
$#$REPEND A$#$
return buf.toString();
}
}
|