2009年8月25日火曜日
ResultSetのメソッド紹介
http://publib.boulder.ibm.com/html/as400/v4r5/ic2962/info/java/rzahh/javadoc/com.ibm.as400.access.AS400JDBCResultSetMetaData.html#getColumnCount()
2009年8月6日木曜日
2009年8月5日水曜日
SQLコントロールの応用例
//パッケージ
package left;
//インポート
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
import left.*;
public class BookSearch extends HttpServlet
{
//index.html(トップページ)から、本や雑誌のリンクから来る
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
// 文字エンコードの設定
req.setCharacterEncoding("Shift_JIS");
//検索文字列を取得
String strSearch = req.getParameter("search");
String strType = req.getParameter("booktype");
String strSort = req.getParameter("sort");
ResultSet rs = null;
if(strSearch != null) // 文字列検索
{
if(strSearch.startsWith("_"))
strSearch = "='" + strSearch.substring(1) + "'"; // ランキングまたはランダムリンク
else
strSearch = "like '%" + strSearch + "%'"; // 通常検索
//検索ボックスに入力された文字列をNameに含む列を出す。
rs = SqlControl.ExecuteSelect("select * from left_shohin_m where name " + strSearch + " order by id");
}
else if(strType != null) // ジャンル検索
{
//押されたリンクのTypeのジャンルIDの内容を取得
rs = SqlControl.ExecuteSelect("select * from left_shohin_m where genre=" + strType + " order by id");
}
else // トップメニュー
{
// 商品テーブルを全て取得
String strSql = "select * from left_shohin_m";
if(strSort != null)
{
if(strSort.equals("sale"))
strSql += " order by totalsale desc";
else
strSql += " order by " + strSort;
}
else
strSql += " order by totalsale desc";
rs = SqlControl.ExecuteSelect(strSql);
}
//List作成。Book型のArrayList
ArrayList BookList = new ArrayList();
try
{
//セレクトした商品をクラスに入れて、
while(rs.next())
{
Book book = new Book();
book.setBookID(rs.getInt("ID"));
book.setBookName(rs.getString("NAME"));
book.setCompany(rs.getString("PUBLISHER"));
String strAuthor = rs.getString("AUTHOR");
book.setWriterName((strAuthor == null) ? "" : strAuthor);
book.setPrice(rs.getInt("PRICE"));
book.setGenreID(rs.getInt("GENRE"));
book.setComment(rs.getString("INFO"));
book.setTotalSale(rs.getInt("totalsale"));
//それをリストに追加していく。
BookList.add(book);
}
}
catch(Exception e)
{
}
// DBを閉じる
SqlControl.CloseDb();
// トップメニュー表示時はリストをランダム抽出した6件にする
if(strSearch == null && strType == null && strSort == null)
{
ArrayList ranking = new ArrayList();
for(int i = 0; i < 3; i++)
{
if(i < BookList.size())
ranking.add(BookList.get(i));
}
// ランキングをセッションに格納
req.getSession().setAttribute("ranking", ranking);
// 全件検索結果を一時保存リストにコピー
ArrayList tempList = new ArrayList();
for(int i = 0; i < BookList.size(); i++)
tempList.add(BookList.get(i));
// リストをクリア
BookList.clear();
//6冊を決める。
for(int i = 0; i < 6; i++)
{
//リスト内でランダムで番号を取得
int Random = (int)(Math.random() * tempList.size());
//その番号に登録してある本を、トップに表示する本のリストに入れていく。
BookList.add(tempList.get(Random));
//BookListから、一度トップに置いた本を削除する
tempList.remove(Random);
}
}
//セッションに格納
req.getSession().setAttribute("list", BookList);
// リスト表示時は商品リスト画面へ
if(strSearch != null || strType != null)
req.getRequestDispatcher("../servlet/left.shop_control?link=4").forward(req, res);
else if(strSort != null) // 書籍管理画面へ
req.getRequestDispatcher("../servlet/left.shop_control?link=15").forward(req, res);
}
//index.html(トップページ)から、本や雑誌のリンクから来る
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
doGet(req, res);
}
}
package left;
//インポート
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
import left.*;
public class BookSearch extends HttpServlet
{
//index.html(トップページ)から、本や雑誌のリンクから来る
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
// 文字エンコードの設定
req.setCharacterEncoding("Shift_JIS");
//検索文字列を取得
String strSearch = req.getParameter("search");
String strType = req.getParameter("booktype");
String strSort = req.getParameter("sort");
ResultSet rs = null;
if(strSearch != null) // 文字列検索
{
if(strSearch.startsWith("_"))
strSearch = "='" + strSearch.substring(1) + "'"; // ランキングまたはランダムリンク
else
strSearch = "like '%" + strSearch + "%'"; // 通常検索
//検索ボックスに入力された文字列をNameに含む列を出す。
rs = SqlControl.ExecuteSelect("select * from left_shohin_m where name " + strSearch + " order by id");
}
else if(strType != null) // ジャンル検索
{
//押されたリンクのTypeのジャンルIDの内容を取得
rs = SqlControl.ExecuteSelect("select * from left_shohin_m where genre=" + strType + " order by id");
}
else // トップメニュー
{
// 商品テーブルを全て取得
String strSql = "select * from left_shohin_m";
if(strSort != null)
{
if(strSort.equals("sale"))
strSql += " order by totalsale desc";
else
strSql += " order by " + strSort;
}
else
strSql += " order by totalsale desc";
rs = SqlControl.ExecuteSelect(strSql);
}
//List作成。Book型のArrayList
ArrayList
try
{
//セレクトした商品をクラスに入れて、
while(rs.next())
{
Book book = new Book();
book.setBookID(rs.getInt("ID"));
book.setBookName(rs.getString("NAME"));
book.setCompany(rs.getString("PUBLISHER"));
String strAuthor = rs.getString("AUTHOR");
book.setWriterName((strAuthor == null) ? "" : strAuthor);
book.setPrice(rs.getInt("PRICE"));
book.setGenreID(rs.getInt("GENRE"));
book.setComment(rs.getString("INFO"));
book.setTotalSale(rs.getInt("totalsale"));
//それをリストに追加していく。
BookList.add(book);
}
}
catch(Exception e)
{
}
// DBを閉じる
SqlControl.CloseDb();
// トップメニュー表示時はリストをランダム抽出した6件にする
if(strSearch == null && strType == null && strSort == null)
{
ArrayList
for(int i = 0; i < 3; i++)
{
if(i < BookList.size())
ranking.add(BookList.get(i));
}
// ランキングをセッションに格納
req.getSession().setAttribute("ranking", ranking);
// 全件検索結果を一時保存リストにコピー
ArrayList
for(int i = 0; i < BookList.size(); i++)
tempList.add(BookList.get(i));
// リストをクリア
BookList.clear();
//6冊を決める。
for(int i = 0; i < 6; i++)
{
//リスト内でランダムで番号を取得
int Random = (int)(Math.random() * tempList.size());
//その番号に登録してある本を、トップに表示する本のリストに入れていく。
BookList.add(tempList.get(Random));
//BookListから、一度トップに置いた本を削除する
tempList.remove(Random);
}
}
//セッションに格納
req.getSession().setAttribute("list", BookList);
// リスト表示時は商品リスト画面へ
if(strSearch != null || strType != null)
req.getRequestDispatcher("../servlet/left.shop_control?link=4").forward(req, res);
else if(strSort != null) // 書籍管理画面へ
req.getRequestDispatcher("../servlet/left.shop_control?link=15").forward(req, res);
}
//index.html(トップページ)から、本や雑誌のリンクから来る
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
doGet(req, res);
}
}
SQL コントロール
package left;
import java.sql.*;
import java.io.*;
import java.util.*;
public class SqlControl
{
private static Connection conn = null; // DB接続を格納する変数
private static Statement stmt = null; // DB操作を行うステートメントを格納する変数
public static ResultSet ExecuteSelect(String sql)
{
return (ResultSet)Execute(sql);
}
public static int ExecuteUpdate(String sql)
{
return ((Integer)Execute(sql)).intValue();
}
public static Object Execute(String sql)
{
if(conn != null || stmt != null)
CloseDb();
Object objRet = null;
String driverName ="oracle.jdbc.OracleDriver"; // DBの名前
String url = "jdbc:oracle:thin:@school:1521:school"; // DBのアドレス
String user = "study"; // DB接続のユーザー名
String password = "study"; // DB接続のパスワード
try
{
// DBを操作するためのドライバクラスを初期化する(DB操作時のお約束処理)
Class.forName(driverName);
// DBに接続する(DB操作時のお約束処理)
conn = DriverManager.getConnection(url, user, password);
// DBを操作するステートメントを作成する(DB操作時のお約束処理)
stmt = conn.createStatement();
// 実行結果を戻り値に設定する
if(sql.startsWith("select"))
objRet = SqlExecuteQuery(stmt, sql);
else
objRet = SqlExecuteUpdate(stmt, sql);
}
catch(Exception e)
{
System.out.println("err");
}
return objRet;
}
public static void CloseDb()
{
// statementとconnectionを閉じる(DB操作時のお約束処理)
try
{
if(stmt != null)
{
stmt.close();
}
if(conn != null)
{
conn.close();
}
}
catch(Exception e)
{
}
}
//
// 関数名 : SqlExecuteQuery
// 機 能 : DBを参照する
// 引 数 : stmt = SQLを実行するステートメントクラス
// sql = SQLの実行文
// 戻り値 : なし
// 更新日 :
//
private static ResultSet SqlExecuteQuery(Statement stmt, String sql)
{
try
{
// SQLを実行
return stmt.executeQuery(sql);
}
catch(Exception e)
{
return null;
}
}
//
// 関数名 : SqlExecuteUpdate
// 機 能 : DBを更新する処理を実行する
// 引 数 : stmt = SQLを実行するステートメントクラス
// sql = SQLの実行文
// 戻り値 : なし
// 更新日 :
//
private static Integer SqlExecuteUpdate(Statement stmt, String sql)
{
try
{
// SQLを実行
return (Integer)stmt.executeUpdate(sql);
}
catch(Exception e)
{
return null;
}
}
}
2009年8月4日火曜日
0001 0002 0003 Part2
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] kaito = new String[100];
for(int i = 0; i < 80; i++)
{
//System.out.printf("%05d", i);
String tmp = String.format("%04d", i);
kaito[i] = tmp;
System.out.println(kaito[i]);
}
}
// TODO Auto-generated method stub
String[] kaito = new String[100];
for(int i = 0; i < 80; i++)
{
//System.out.printf("%05d", i);
String tmp = String.format("%04d", i);
kaito[i] = tmp;
System.out.println(kaito[i]);
}
}
登録:
投稿 (Atom)