DTP→ほそぼそとWeb業界のカタスミでお仕事しています・・・

XAMPPのMySQLを使ってみる2

学校でJavaの課題が出まして、見当もつかないです(^^;)

・・・クラスの方々が親切に説明してくれたのですが、挫折
個人的な希望で先生にお願いして
PHPをさせてもらうことにしましたm(_ _)m

▼PHPのコードはこちら(ページ内リンク)
▼Javaのコードはこちら(教科書の参考コード。これを改変するそうですが挫折)(ページ内リンク)

・・・と、いうわけで XAMPPのMySQLを使ってみました。
(↓以下、クリックで画像は拡大します)

コードは私にはわからなかったので、フォームについて載っていた
よくわかるPHPの教科書 たにぐち まこと著 からです。
買いました(^^)←でもこれ、後ろのほうにフォームが載っていたので
時間があるときにちゃんと前にさかのぼって読みたいと思います
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>MySQLに接続してみます
</head>
<body>
<div id="wrap">
<h2>MySQLに接続してみます
<img src="car.gif"/ >
<div id="content"> <?php mysql_connect('localhost', 'root', '') or die(mysql_error()); echo 'データベースに接続しました<br />'; mysql_select_db('javatest') or die(mysql_error()); echo 'データベーススペース「javatest」を選択しました<br />'; mysql_query('SET NAMES UTF8'); echo '文字コードを「UTF8」にしました<br /><br />'; echo 'データを取り出してみます<br />'; ?> <table class="carTable"> <tr><<th>番号</th><th>名前</th></tr> <?php $result = mysql_query('SELECT * FROM 車表'); while ($row = mysql_fetch_assoc($result)) { echo('<tr>'); echo('<td>'.$row['番号'].'</td>'); echo('<td>'.$row['名前'].'</td>'); echo('</tr>'); } ?> </table> <div class="samo">index.php</div> </div> </div> </body> </html>

追記・・・ちなみに、Javaで同じ結果を得ようと思うと、
ファイルが3つもいります(@-@)
もちろん使われるのはclassファイルなので、コンパイル通らなくてはいけません
WEB-INFの中のxmlを入れるとファイルが4つもいります。
以下は教科書の参考コードで、課題の答えではありません
これをどう変えたらいいのか、見当がつきませんでした。
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import="java.util.*" %>
<jsp:useBean id="cb" class="mybeans.CarDBBean" scope="request" />
<%! ArrayList colname; ArrayList data; %>
<% colname = cb.getColname(); data = cb.getData(); %>	
<html>
<head>
<title>サンプル</title>
<link rel="stylesheet" href="img/style.css" type="text/css" />
</head>
<body><center>
<img src="img/car.gif"/ ><br />
<h2>ようこそ</h2>
<hr />
お選びください。<br />
colname:<%= colname %><br />
data:<%= data %><br />	
<table border="1" class="ts5">
<tr bgcolor="#E0C76F">
<% for(int column=0; column
<th>
<%= (String) colname.get(column) %>
</th>
<% } %>
</tr>
<% for(int row=0; row
<tr>
<%
ArrayList rowdata = (ArrayList) (data.get(row));
for(int column=0; column
<td>
<%= rowdata.get(column) %>
</td>
<% } %>
</tr>
<% } %>
</table>
<div class="samo">Lesson8 Sample5.jsp</div>
</center></body>
</html>

↓WEB-INFの中の、classesフォルダの中に入れるファイル
import mybeans.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Sample5 extends HttpServlet//ユーザーからのリクエストをつけつけるサーブレットです
{
	public void doGet(HttpServletRequest request, //URLから直接呼ばれたときのメソッド Requestリクエスト
					HttpServletResponse response) //今までのメインメソッドにかわるもの Responseレスポンス
		throws ServletException
	{
		try{
			//メソッド コンテンツタイプの設定 セットコンテンツタイプ
			//response.setContentType ("text/html; charset=Shift_JIS"); //テキスト型 文字はシフトジス
			//サーブレットコンテキストの取得
			ServletContext sc = getServletContext();
			
			//Beanの作成
			CarDBBean cb = new CarDBBean();
			
			//リクエストに設定
			request.setAttribute("cb",cb);
			
			//リクエストの転送
			sc.getRequestDispatcher("/Sample5.jsp").forward(request, response);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
}

↓WEB-INFの中の、classesフォルダの中の、mybeansフォルダに入れるファイル
package mybeans;
import java.util.*;
import java.io.*;
import java.sql.*;

public class CarDBBean implements Serializable //データベースに接続するBeanです
{
	public ArrayList colname; //列名(ストリング型)を保存するリストです
	public ArrayList data; //表全体を保存するリストです。宣言がになっている。
	
		public CarDBBean()
	{
		try{
			//接続の準備 JDBCドライバを指定します
			String url = "jdbc:mysql://localhost:3306/javatest"; //MySQL
			String usr = "root"; //ユーザー
			String pw = "*****"; //パスワード
				
			//データベースに接続します
			Class.forName("com.mysql.jdbc.Driver");
			Connection cn = DriverManager.getConnection(url, usr, pw);
			
			//問い合わせの準備
			DatabaseMetaData dm = cn.getMetaData();
			ResultSet tb = dm.getTables(null, null, "車表", null);
			
			Statement st = cn.createStatement();
			
			String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))";
			String[] qry2 = {
				"INSERT INTO 車表 VALUES (2, '乗用車')",
				"INSERT INTO 車表 VALUES (3, 'オープンカー')",
				"INSERT INTO 車表 VALUES (4, 'トラック')"};
			String qry3 = "SELECT * FROM 車表";
			
			if(!tb.next()){
				st.executeUpdate(qry1);
				for(int i=0; i(cnum);
			
			//列名の取得
			for(int i=1; i<=cnum; i++){
				colname.add(rm.getColumnName(i).toString());
			}
			
			//行の取得
			data = new ArrayList();
			while(rs.next()){
				ArrayList rowdata = new ArrayList();
				for(int i=1; i<=cnum; i++){
					rowdata.add(rs.getObject(i).toString());
			}
			
			data.add(rowdata);
		}
		
		//接続のクローズ
		rs.close();
		st.close();
		cn.close();
	}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	public ArrayList getData()
	{
		return data;
	}
	public ArrayList getColname()
	{
		return colname;
	}
}

・・・私のレベルでは理解不能(--;)
.jspからサーブレットに送って、JavaBeanが処理してるんですかね?