簡単な学生管理システム
5757 ワード
前編では、JDBCツールクラスのパッケージについて説明しました.
この文章は自分でカプセル化するJDBCツール類で1つの簡単な学生の管理システムを書いて、具体的な機能はあります:a:学生の情報bを検索します:学生の情報を追加します
c:学生情報dの変更:学生情報を削除する.キーボード入力を受信することで、具体的な機能を実現します.このシステムは比較的簡単で、フロントエンドやサーバには関係ありません.
コンソールの入出力のみです.自分で手探りで书いたので、书き心地はとても良くて、そこから多くの问题を発见することができて、多くの新しい知识を学んで、同时に
、多くの欠陥も存在しますので、ご指摘を歓迎します.
また、このシステムで私が使用している文オブジェクトはPreparedStatementではなくstatementです.この文オブジェクトはPreparedStatementに比べて
最大の欠点は、SQL注入攻撃を防ぐことができないことです.SQL注入攻撃とは、別の記事で詳しく説明します.
管理システムのコードは次のとおりです.
もちろん、JDBCはデータベースに接続し、データベース内のstuテーブルと、ライブラリ構築テーブルのスクリプトは以下の通りです.
この文章は自分でカプセル化するJDBCツール類で1つの簡単な学生の管理システムを書いて、具体的な機能はあります:a:学生の情報bを検索します:学生の情報を追加します
c:学生情報dの変更:学生情報を削除する.キーボード入力を受信することで、具体的な機能を実現します.このシステムは比較的簡単で、フロントエンドやサーバには関係ありません.
コンソールの入出力のみです.自分で手探りで书いたので、书き心地はとても良くて、そこから多くの问题を発见することができて、多くの新しい知识を学んで、同时に
、多くの欠陥も存在しますので、ご指摘を歓迎します.
また、このシステムで私が使用している文オブジェクトはPreparedStatementではなくstatementです.この文オブジェクトはPreparedStatementに比べて
最大の欠点は、SQL注入攻撃を防ぐことができないことです.SQL注入攻撃とは、別の記事で詳しく説明します.
管理システムのコードは次のとおりです.
package com.xcx;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
import javax.management.StringValueExp;
import org.junit.Test;
import org.omg.CORBA.portable.ValueOutputStream;
import com.jdbc.util.JdbcUtil;
public class StudentManager {
private static Scanner sc = new Scanner(System.in);//
public static void main(String[] args) {
while (true) {
System.out.println("a: b: c: d: ");
System.out.println(" ,abcd :");
char in = sc.next().charAt(0);//
// String.equals("a") || char=='a'
switch (in) {
case 'a':
FindStu();
break;
case 'b':
AddStu();
break;
case 'c':
UpdateStu();
break;
case 'd':
DeleteStu();
break;
default:
System.out.println(" , ");
break;
}
}
}
// ---------------------------------------------------------
private static void AddStu() {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
stat = conn.createStatement();
sc.nextLine();//
System.out.println(" ");
String stuid = sc.nextLine();
System.out.println(" ");
String name = sc.nextLine();
System.out.println(" ");
String gender = sc.nextLine();
System.out.println(" ");
String addr = sc.nextLine();
System.out.println(" ");
double score = sc.nextDouble();
// String sql="insert into stu"
// +" values('"+stuid+"','"+name+"','"+gender+"','"+addr+"',"+score;//
String sql = "insert into stu values (" + "'" + stuid + "','" + name + "','" + gender + "','" + addr + "',"
+ score + ")";
int rows = stat.executeUpdate(sql);
System.out.println(" " + rows + " ");
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.close(rs, stat, conn);
}
}
// ----------------------------------------------------------
private static void DeleteStu() {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
stat = conn.createStatement();
System.out.println(" ");
String in = new Scanner(System.in).nextLine();
String sql = "delete from stu " + "where stuid='" + in + "'";// delete *
//
int rows = stat.executeUpdate(sql);
System.out.println(" " + rows + " !");
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.close(rs, stat, conn);
}
}
// ----------------------------------------------------------
private static void UpdateStu() {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
conn=JdbcUtil.getConn();
stat=conn.createStatement();
sc.nextLine();
System.out.println(" ");
String stuid=sc.nextLine();
System.out.println(" ");
String name=sc.nextLine();
System.out.println(" ");
String gender=sc.nextLine();
System.out.println(" ");
String addr=sc.nextLine();
System.out.println(" ");
double score=sc.nextDouble();
String sql="update stu set name='"+name+"',gender='"+gender+"',addr='"+addr+"',score="+score+" where stuid='"+stuid+"'";
int rows=stat.executeUpdate(sql);
System.out.println(" "+rows+" ");
} catch (Exception e) {
e.printStackTrace();
}finally {
JdbcUtil.close(rs, stat, conn);
}
}
// ----------------------------------------------------------
private static void FindStu() {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
stat = conn.createStatement();
String sql = "select * from stu";
rs = stat.executeQuery(sql);
while(rs.next()) {
String stuid = rs.getString("stuid");
String name = rs.getString("name");
String gender = rs.getString("gender");
String addr = rs.getString("addr");
double score = rs.getDouble("score");
System.out.println(stuid + ":" + name + ":" + gender + ":" + addr + ":" + score);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.close(rs, stat, conn);
}
}
}
もちろん、JDBCはデータベースに接続し、データベース内のstuテーブルと、ライブラリ構築テーブルのスクリプトは以下の通りです.
-- 1、 mydb ( )
create database if not exists mydb charset utf8;
use mydb; -- mydb
-- 2、 mydb stu ( )
drop table if exists stu;
create table stu(
stuid varchar(50),
name varchar(50),
gender char(2),
addr varchar(50),
score double
);
-- 3、 stu ,
insert into stu values('1001',' ',' ', ' ', 86);