SQLの窓

2011年10月01日


JSP : 単純なデータベースの更新( MySQL ODBC 5.1 Driver でDSNを作成しない接続 )

サンプルソースコードを使ってすぐできる実行環境は、以下で用意できます
( 含む Beans で lightbox.webapp )

Tomcat7 のインストールと、すぐ簡単にJSPアプリケーションテスト( DB アクセス、入力等 )

JSP と言っても、WEBアプリケーションには違い無いので、PHP での
$_GET にあたるものが必要になるので、Beans で実装しています。

ただ、TOMCAT + JSP では、メモリに乗ったままの状態で実行される事を
前提としているので、データベースの接続を継続するように記述してあり
ます。接続するのは最初の一度だけで、TOMCAT が終了するまで接続した
ままとなります。
※ reloadable="true" の設定ではアプリケーションを変更した場合にもリセットされます
※ マネージャよりアプリケーションを再起動した場合も同様です

MySQL に対してのアクセスなので実際は少しキャラクタセットの関係で
化ける文字が存在し、そのような時にはアプリケーションが止まってし
まう事がありました。( MySQL 側は UTF8 )

※ キャラクタセットの設定は ODBC ドライバのパラメータで行っています。
<!DOCTYPE html>
<html lang="ja">
<%@ page
	language="java"
	import="java.util.*"
	import="java.io.*"
	import="java.text.*"
	import="java.sql.*"
	contentType="text/html;charset=shift_jis" %>
<jsp:useBean id="my" scope="session" class="lightbox.webapp" />

<style type="text/css">
body {
	font-family: "MS ゴシック";
}
</style>
<body>
<h1>社員マスタメンテナンス</h1>
<%!

Connection cn = null;
Statement st = null;
ResultSet rs = null;
String connectionString =
	"Provider=MSDASQL" +
	";Driver={MySQL ODBC 5.1 Driver}" +
	";SERVER=localhost" + 
	";DATABASE=lightbox" +
	";UID=root" +
	";PWD=password" +
	";Charset=sjis" + 
	";";

%>
<%
response.setHeader( "Expires", "Wed, 31 May 2000 14:59:58 GMT" );

// *********************************************************
// lightbox.webapp で入力データを取得
// *********************************************************
my.startApplication( application, "社員マスタ" );
my.Initialize( request );

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

if ( my.get( "send" ).equals( "確認" ) ) {

	try {

		if ( cn == null ) {
			cn = DriverManager.getConnection("jdbc:odbc:"+connectionString);
		}

		st = cn.createStatement();
		
		// *********************************************************
		// 行を返す SQL を実行
		// *********************************************************
		String Query = "select * from 社員マスタ where 社員コード = '"
			+ my.get("scode") + "'";
		rs = st.executeQuery( Query );
		
		rs.next();
		my.set("sname", rs.getString( 2 ) );

		rs.close();
		st.close();


	}
	catch (Exception e) {
		out.println("エラー");
	}

}
if ( my.get( "send" ).equals( "更新" ) ) {

	try {

		if ( cn == null ) {
			cn = DriverManager.getConnection("jdbc:odbc:"+connectionString);
		}

		st = cn.createStatement();
		
		// *********************************************************
		// 行を返さない SQL を実行
		// *********************************************************
		String Query = "update 社員マスタ set 氏名 = '" + my.get("sname")
			 + "' where 社員コード = '" + my.get("scode") + "'";
		st.execute( Query );
		st.close();

	}
	catch (Exception e) {
		out.println("エラー");
	}

}

%>

<form method="get">
	社員コード <input
		type="text"
		name="scode"
		value="<%= my.get("scode") %>"
		style='width:100px;'
	/>
	<input
		type="submit"
		name="send"
		value="確認"
	/><br />

	氏   名 <input
		type="text"
		name="sname"
		value="<%= my.get("sname") %>"
		style='width:200px;'
	/><br />
	<input
		type="submit"
		name="send"
		value="更新"
	/><br />

</form>

<%
// デバッグ表示
out.println( "<br /><br /><hr />" );
out.println( my.getDebug() );
%>

</body>
</html>



posted by lightbox at 2011-10-01 22:37 | java : JSP | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり