---
# System prepended metadata

title: JV27 課題No.02
tags: [課題]

---

# JV27 課題No.02
###### tags: `課題`


### 提出日　5月27日（木）
### 課題番号2番
### データベース名簿追加

>　オプション１
>　出席番号(クラス内)の自動発番
>　出席番号は入力しない
>　出席番号の末尾+1にする
>　注）出席番号は２桁
>　例　05　山田太郎

> オプション２(オプション１に加える)
> 学籍番号の自動発番
> 学籍番号は入力しない
> 同年度入学生の末尾+1とする
> 学籍番号：99999(下4桁が連番、５桁目が入学年下１桁)
> 例)2019年入学
> 学籍番号：90001
> 画面に入学年度を追加



```htmlembedded=
<!-- class_insert.html -->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>クラス</h1>
    <form action="./servlet/class_insert" method="POST">
        <div>
            <input type="radio" name="SELECT" value="2">
            <select name="CLASS_NO">
                <option value="AT11A192" selected>AT11A192</option>
                <option value="AT11B203">AT11B203</option>
                <option value="CG11A172">CG11A172</option>
                <option value="IT11A172">IT11A172</option>
                <option value="AT12A165">AT12A165</option>
                <option value="AT12B165">AT12B165</option>
                <option value="IH12A101">IH12A101</option>
                <option value="IW12A185">IW12A185</option>
                <option value="AT13A223">AT13A223</option>
                <option value="AP13A223">AP13A223</option>
                <option value="IH13A223">IH13A223</option>
                <option value="IW13A187">IW13A187</option>
                <option value="CD13A166">CD13A166</option>
                <option value="AP14A226">AP14A226</option>
                <option value="AT14A226">AT14A226</option>
                <option value="IH14A223">IH14A223</option>
                <option value="CT14A187">CT14A187</option>
                <option value="IW14A187">IW14A187</option>
                <option value="xx14Axx">xx14Axx</option>
            </select>
            <p>出席</p>
            <input type="text" name="syusseki_no" size="5" value="">
            <p>学籍</p>
            <input type="text" name="gakuseki_no" size="5" value="">
            <p>氏名(姓)</p>
            <input type="text" name="simei_1" size="30" value="">
            <p>氏名(名)</p>
            <input type="text" name="simei_2" size="30" value="">
            <p>カナ(姓)</p>
            <input type="text" name="kana_1" size="30" value="">
            <p>カナ(名)</p>
            <input type="text" name="kana_2" size="30" value="">
            <p>生年月日</p>
            <input type="text" name="umare" size="30" value="">
        </div>
        <input type="submit" value="登録">
        <input type="reset" value="入力クリア">
    </form>
        <a href="class_index.html">
            <button>戻る</button>
        </a>
</body>
</html>
```

```java=
// class_insert.java

import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class class_insert extends HttpServlet {
	
	public void doPost (
		HttpServletRequest req,
		HttpServletResponse res )
		throws ServletException , IOException {

		final String URL = "jdbc:mysql://localhost/nhs00718db?useUnicode=true&characterEncoding=UTF-8";
		final String USER = "kurumi";
		final String PASSWORD = "rock3150617";
		final String DRIVER = "com.mysql.jdbc.Driver";

		Connection con = null;
		Statement stmt = null;

		String class_no,gakuseki_no,syusseki_no,simei_1,simei_2,kana_1,kana_2,umare;
		PrintWriter out;
		req.setCharacterEncoding("UTF-8");
		res.setContentType("text/html;charset=UTF-8");
		out = res.getWriter();

		String class_noStr = req.getParameter("CLASS_NO");
		String syusseki_noStr = req.getParameter("syusseki_no");
		String gakuseki_noStr = req.getParameter("gakuseki_no");
		String simei_1Str = req.getParameter("simei_1");
		String simei_2Str = req.getParameter("simei_2");
		String kana_1Str = req.getParameter("kana_1");
		String kana_2Str = req.getParameter("kana_2");
		String umareStr = req.getParameter("umare");

        try {
            Class.forName(DRIVER);
            con = DriverManager.getConnection(URL,USER,PASSWORD);
            stmt = con.createStatement();

            StringBuffer query = new StringBuffer();
            query.append("select * from class_table where gakuseki_no='");
            query.append(gakuseki_noStr);
            query.append("'");
            ResultSet rs = stmt.executeQuery(query.toString());

            StringBuffer sb = new StringBuffer();
            sb.append("<html>");
            sb.append("<head><title>名簿登録</title></head>");
            sb.append("<body>");
            sb.append("<p>");
            sb.append("<<名簿登録>>");
            sb.append("</p>");
            if(rs.next()){
                sb.append("学籍番号");
                sb.append(gakuseki_noStr);
                sb.append("はすでに登録済みです<br>");
                out.println(class_noStr);
            }else{
                query = new StringBuffer();
                query.append("INSERT INTO class_table");
                query.append("(class_no,syusseki_no,gakuseki_no,simei_1,simei_2,kana_1,kana_2,umare)");
                query.append("values('");
                query.append(class_noStr);
                query.append("','");
                query.append(syusseki_noStr);
                query.append("','");
                query.append(gakuseki_noStr);
                query.append("','");
                query.append(simei_1Str);
                query.append("','");
                query.append(simei_2Str);
                query.append("','");
                query.append(kana_1Str);
                query.append("','");
                query.append(kana_2Str);
                query.append("','");
                query.append(umareStr);
                query.append("')");
                stmt.executeUpdate(query.toString());
                sb.append("<h1>");
                sb.append("名簿登録完了しました");
                sb.append("</h1>");
            }
            sb.append("<a href='/JV27/class_insert.html'>");
            sb.append("名簿登録に戻る");
            sb.append("</a><br>");
            sb.append("<a href='/JV27/class_index.html'>");
            sb.append("ホームへ戻る");
            sb.append("</a>");
            sb.append("</body>");
            sb.append("</html>");
            out.println(sb.toString());

            stmt.close();
            con.close();
        }
        catch (SQLException ex) {
            out.println(" ---- SQL Exception ----");
            out.println(" ---- Error Message ----");
            while (ex != null) {
                out.println(ex.getMessage());
                ex = ex.getNextException();
            }
        } catch (Exception ex) {
            ex.printStackTrace(out);
        }
    }
}
```


オプション1
htmlは出席番号の入力欄を消すだけでOK

``` java=
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class insert2 extends HttpServlet {
	public void doPost(
			HttpServletRequest req,
			HttpServletResponse res)
			throws ServletException, IOException{
		
		
		final String URL = "jdbc:mysql://localhost/nhs00650db?useUnicode=true&characterEncoding=UTF-8";
		final String USER = "kawamura";
		final String PASSWORD = "0912";
		final String DRIVER = "com.mysql.jdbc.Driver";

		Connection con = null;
		Statement stmt = null;
		
		String class_no,gakuseki_no,syusseki_no,simei_1,simei_2,kana_1,kana_2,umare;
		PrintWriter out;
		req.setCharacterEncoding("UTF-8");
		res.setContentType("text/html;charset=UTF-8");
		out = res.getWriter();

		String class_noStr = req.getParameter("CLASS_NO");
		String syusseki_noStr = req.getParameter("syusseki_no");
		String gakuseki_noStr = req.getParameter("gakuseki_no");
		String simei_1Str = req.getParameter("simei_1");
		String simei_2Str = req.getParameter("simei_2");
		String kana_1Str = req.getParameter("kana_1");
		String kana_2Str = req.getParameter("kana_2");
		String umareStr = req.getParameter("umare");
		
		String max = "";

					try {
						Class.forName(DRIVER);
						con = DriverManager.getConnection(URL,USER,PASSWORD);
						stmt = con.createStatement();

						StringBuffer query = new StringBuffer();
						query.append("select * from class_table where gakuseki_no='");
						query.append(gakuseki_noStr);
						query.append("'");
						ResultSet rs = stmt.executeQuery(query.toString());
						
						StringBuffer sb = new StringBuffer();
						sb.append("<html>");
						sb.append("<head><title>名簿登録</title></head>");
						sb.append("<body>");
						sb.append("<p>");
						sb.append("<<名簿登録>>");
						sb.append("</p>");
						if(rs.next()){
							sb.append("学籍番号");
							sb.append(gakuseki_noStr);
							sb.append("はすでに登録済みです<br>");
							out.println(class_noStr);
						}else{
							query = new StringBuffer();
							query.append("select * from class_table where class_no= '");
							query.append(class_noStr);
							query.append("'");
							query.append("order by syusseki_no desc limit 1");
							ResultSet rsmax = stmt.executeQuery(query.toString());
							if(rsmax.next()){
								max = rsmax.getString("syusseki_no");
								rsmax.close();
							}
							
							int maxint = Integer.parseInt(max);
							maxint = maxint + 1;
							String maxStr = "";
                            // 10以下の場合に先頭を0埋めするための処理
							if(maxint < 10){
								maxStr = String.format("%02d", maxint);
							}
							
							
							query = new StringBuffer();
							query.append("INSERT INTO class_table");
							query.append("(class_no,syusseki_no,gakuseki_no,simei_1,simei_2,kana_1,kana_2,umare)");
							query.append("values('");
							query.append(class_noStr);
							query.append("','");
							query.append(maxStr);
							query.append("','");
							query.append(gakuseki_noStr);
							query.append("','");
							query.append(simei_1Str);
							query.append("','");
							query.append(simei_2Str);
							query.append("','");
							query.append(kana_1Str);
							query.append("','");
							query.append(kana_2Str);
							query.append("','");
							query.append(umareStr);
							query.append("')");
							stmt.executeUpdate(query.toString());
							sb.append("<h1>");
							sb.append("名簿登録完了しました");
							sb.append("</h1>");
						}
						sb.append("<a href='/JV27/class_insert2.html'>");
						sb.append("名簿登録に戻る");
						sb.append("</a><br>");
						sb.append("<a href='/JV27/class_index.html'>");
						sb.append("ホームへ戻る");
						sb.append("</a>");
						sb.append("</body>");
						sb.append("</html>");
						out.println(sb.toString());

						stmt.close();
						con.close();
					}
					catch (SQLException ex) {
						out.println(" ---- SQL Exception ----");
						out.println(" ---- Error Message ----");
						while (ex != null) {
							out.println(ex.getMessage());
							ex = ex.getNextException();
						}
					} catch (Exception ex) {
						ex.printStackTrace(out);
					}
					
	}
}

```



```htmlembedded=
<!-- option2 -->
<!-- class_insert.html -->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>クラス</h1>
    <form action="./servlet/class_insert" method="POST">
        <div>
            <select name="CLASS_NO">
                <option value="AT11A192" selected>AT11A192</option>
                <option value="AT11B203">AT11B203</option>
                <option value="CG11A172">CG11A172</option>
                <option value="IT11A172">IT11A172</option>
                <option value="AT12A165">AT12A165</option>
                <option value="AT12B165">AT12B165</option>
                <option value="IH12A101">IH12A101</option>
                <option value="IW12A185">IW12A185</option>
                <option value="AT13A223">AT13A223</option>
                <option value="AP13A223">AP13A223</option>
                <option value="IH13A223">IH13A223</option> 
                <option value="IW13A187">IW13A187</option>
                <option value="CD13A166">CD13A166</option>
                <option value="AP14A226">AP14A226</option>
                <option value="AT14A226">AT14A226</option>
                <option value="IH14A223">IH14A223</option>
                <option value="CT14A187">CT14A187</option>
                <option value="IW14A187">IW14A187</option>
                <option value="xx14Axx">xx14Axx</option>
            </select>
            <p>入学年度</p>
            <input type="text" name="nyuugakunendo_no" size="30" value="">
            <p>氏名(姓)</p>
            <input type="text" name="simei_1" size="30" value="">
            <p>氏名(名)</p>
            <input type="text" name="simei_2" size="30" value="">
            <p>カナ(姓)</p>
            <input type="text" name="kana_1" size="30" value="">
            <p>カナ(名)</p>
            <input type="text" name="kana_2" size="30" value="">
            <p>生年月日</p>
            <input type="text" name="umare" size="30" value="">
        </div>
        <input type="submit" value="登録">
        <input type="reset" value="入力クリア">
    </form>
    <a href="class_index.html">
        <button>戻る</button>
    </a>
</body>
</html>
```
```java=

// option2


import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class class_insert extends HttpServlet {
	
	public void doPost (
		HttpServletRequest req,
		HttpServletResponse res )
		throws ServletException , IOException {

		final String URL = "jdbc:mysql://localhost/nhs00157db?useUnicode=true&characterEncoding=UTF-8";
		final String USER = "miyasan";
		final String PASSWORD = "0301";
		final String DRIVER = "com.mysql.jdbc.Driver";

		Connection con = null;
		Statement stmt = null;

		String class_no,gakuseki_no,simei_1,simei_2,kana_1,kana_2,umare;
		PrintWriter out;
		req.setCharacterEncoding("UTF-8");
		res.setContentType("text/html;charset=UTF-8");
		out = res.getWriter();

		String class_noStr = req.getParameter("CLASS_NO");
		String nyuugakunendo_noStr = req.getParameter("nyuugakunendo_no");
		String simei_1Str = req.getParameter("simei_1");
		String simei_2Str = req.getParameter("simei_2");
		String kana_1Str = req.getParameter("kana_1");
		String kana_2Str = req.getParameter("kana_2");
		String umareStr = req.getParameter("umare");
		String max = "";
		String maxStr = "";
		String max_gakusekinoStr = "";
		int max_gakusekinoInt;
		int new_max_gakusekinoInt;
		String new_max_gakusekinoStr;
		
		char lastChar = nyuugakunendo_noStr.charAt(nyuugakunendo_noStr.length() - 1);

		try {
			Class.forName(DRIVER);
			con = DriverManager.getConnection(URL,USER,PASSWORD);
			stmt = con.createStatement();
			
			StringBuffer query = new StringBuffer();
			query.append("select gakuseki_no from class_table where gakuseki_no like '");
			query.append(lastChar);
			query.append("____' order by gakuseki_no desc limit 1");
			ResultSet rs = stmt.executeQuery(query.toString());
			
			while (rs.next()) {
				max_gakusekinoStr = rs.getString("gakuseki_no");
			}
			max_gakusekinoInt =  Integer.parseInt(max_gakusekinoStr);
			new_max_gakusekinoInt =  max_gakusekinoInt + 1;
			new_max_gakusekinoStr = String.valueOf(new_max_gakusekinoInt);

			StringBuffer sb = new StringBuffer();
			sb.append("<html>");
				sb.append("<head>");
				sb.append("<title>名簿登録</title>");
				sb.append("</head>");
				sb.append("<body>");
					sb.append("<div>");
						sb.append("<div>名簿登録</div>");
						
							query = new StringBuffer();
							query.append("select * from class_table where class_no = '");
							query.append(class_noStr);
							query.append("'");
							query.append("order by syusseki_no desc limit 1");
							ResultSet rsmax = stmt.executeQuery(query.toString());
							if(rsmax.next()){
								max = rsmax.getString("syusseki_no");
								rsmax.close();
							}
							
							int maxint = Integer.parseInt(max);
							maxint = maxint + 1;
							
							System.out.print(maxint);
                            // 10以下の場合に先頭を0埋めするための処理
							if(maxint < 10){
								maxStr = String.format("%02d", maxint);
							} else {
								maxStr = String.valueOf(maxint);
							}
							
							query = new StringBuffer();
							query.append("INSERT INTO class_table");
							query.append("(class_no,syusseki_no,gakuseki_no,simei_1,simei_2,kana_1,kana_2,umare)");
							query.append("values('");
							query.append(class_noStr);
							query.append("','");
							query.append(maxStr);
							query.append("','");
							query.append(new_max_gakusekinoStr);
							query.append("','");
							query.append(simei_1Str);
							query.append("','");
							query.append(simei_2Str);
							query.append("','");
							query.append(kana_1Str);
							query.append("','");
							query.append(kana_2Str);
							query.append("','");
							query.append(umareStr);
							query.append("')");
							stmt.executeUpdate(query.toString());
							sb.append("<h1 class='text-center'>名簿登録完了</h1>");
							sb.append("<hr/>");
							
						sb.append("<div>");
							sb.append("<div>");
								sb.append("<a href='/JV27/class_insert.html'><button>登録に戻る</button></a>");
								sb.append("<a href='/JV27/class_index.html'><button>ホームに戻る</button></a>");
							sb.append("</div>");
						sb.append("</div>");
					sb.append("</div>");
				sb.append("</body>");
			sb.append("</html>");

			out.println(sb.toString());
			stmt.close();
			con.close();

		} catch (SQLException ex) {
			out.println(" ---- SQL Exception ----");
			out.println(" ---- Error Message ----");
			while (ex != null) {
				out.println(ex.getMessage());
				ex = ex.getNextException();
			}
		} catch (Exception ex) {
			ex.printStackTrace(out);
		}
	}
}
```



<span style="color: #ff3333">aaa</span>
<span style="text-decoration: underline">aaa</span>
## 雑談 (0→やまぴ 1→みや 2→やすい 3→りょうくん)

2.おはよう

1.OP1ってこれ５０音とかかんがえなくていい？
3. 50音とは？
3. 名前の並び順ってこと？
3. オプションは、新しく追加する人を学籍番号を＋１して追加すればいいだけのはず
日本語順みたいなやつ
学籍番号プラスいち？
そうそう
今日くそ見にくい
出席じゃないの？
出席やったわ　すまん
ピンクピンクはやばい
おけい
安井君紫やし
まじでひどいわ
てか、暇やな
OP２やってる？
やってない
今日は疲れた
おれやりますわ
あざす
String max これ、tryの外で宣言してるのなんで？

> 学籍番号：99999(下4桁が連番、５桁目が入学年下１桁)
これの意味わからん
一番最初の数字が入学年度
今年なら2021年やから1になる
その後の4桁がその年の入学者の通し番号になる
宮　10001
河村 10002
安井 10003みたいに

これ被った場合のやつもかかないといけない？
被ることはないんじゃね？
入学年度の学籍番号の下4桁の数字に+1するわけやから
入っとる学籍番号の中で、最も大きい数字をとってくれば
それこそorder byとかで学籍番号でソートすれば
１９９９９の人がいたら？

> 同年度入学生の末尾+1とする
これどこで判別するの？でーたべーすはいってたっけ？クラス記号か、めんど


> オプション２(オプション１に加える)
> 学籍番号の自動発番
> 学籍番号は入力しない
> 同年度入学生の末尾+1とする
> 学籍番号：99999(下4桁が連番、５桁目が入学年下１桁)
> 例)2019年入学
> 学籍番号：90001
> 画面に入学年度を追加

- 入学年度から学籍番号一桁目を抽出
-  ＝（クラス記号から学年を抽出）

- nyuugakunendo_noから一桁目取る

-  select gakuseki_no from class_table where gakuseki_no like 'nyuugakunendo_no____' order by gakuseki_no desc limit 1 
-  gakuseki_no++



- year = 入力された入学年度の一番最後の数字
- と学籍番号の1番最初の数字が一緒のやつをさがして
- その一番新しい数字に＋１すればいいんじゃない？



```=java
public class LastCharString {
    public static void main(String[] args) {

        String exampleString = "This is a String";

        char lastChar = exampleString.charAt(exampleString.length() - 1);

        System.out.println("Last char: " + lastChar);
    }
}
```


year = 2016(要するに6)
select gakuseki_no from class_table where 学籍番号の一番最初数字　= year order by gakuseki_no desc limit 1


<span style="font-size: 100px">
やすいくんなにやってるの？
</span>
文字でかｗ
アピリッツの説明会