├── .classpath ├── .gitignore ├── .project ├── .settings ├── org.eclipse.core.resources.prefs └── org.eclipse.jdt.core.prefs ├── README.md ├── soccerPlayer.sql └── src └── soccer ├── DBConnection.java ├── Main.java └── SoccerPlayer.java /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/java 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=java 3 | 4 | ### Java ### 5 | # Compiled class file 6 | *.class 7 | 8 | # User account file 9 | *.properties 10 | 11 | # Log file 12 | *.log 13 | 14 | # BlueJ files 15 | *.ctxt 16 | 17 | # Mobile Tools for Java (J2ME) 18 | .mtj.tmp/ 19 | 20 | # Package Files # 21 | *.jar 22 | *.war 23 | *.nar 24 | *.ear 25 | *.zip 26 | *.tar.gz 27 | *.rar 28 | 29 | # Virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 30 | hs_err_pid* 31 | 32 | # End of https://www.toptal.com/developers/gitignore/api/java 33 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | soccer 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=MS949 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=17 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning 13 | org.eclipse.jdt.core.compiler.release=enabled 14 | org.eclipse.jdt.core.compiler.source=17 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # soccerplayer 2 | # 축구선수 순위 관리 프로그램 3 | 4 | ## 개 요 5 | 6 | Java와 MySql을 활용한 축구선수 순위 관리 프로그램 제작 7 | 8 | ## 개발환경 9 | 10 | | 구 분 | 내 용 | 11 | | --- | --- | 12 | | OS | Windows 10 Home | 13 | | Language | Java 17.0.4 | 14 | | Editor | Eclipse 2020-12(4.18.0) | 15 | | DBMS | MySQL Workbench 80. | 16 | | Github | https://github.com/fkrbtjs/soccerplayer-repos | 17 | 18 | ## 개발기간 19 | 20 | 2022.09.29(목) ~ 2022.10.3(월) 21 | 22 | ## 기능 요약 및 설명 23 | 24 | ### 1. 선수정보 입력 25 | - 선수 이름,팀,골,어시스트,파울을 입력하여 저장한다. 26 | 27 | ![입력](https://user-images.githubusercontent.com/115532120/195992967-ee4b776f-4706-4383-9628-f8a87cc55877.png) 28 | 29 | ### 2. 선수정보 출력 30 | - 저장된 선수 정보를 리스트형식으로 출력한다. 31 | 32 | ![출력](https://user-images.githubusercontent.com/115532120/195993011-a8553fa8-c071-44f5-9f47-88d931b9207b.png) 33 | 34 | ### 3. 선수정보 수정 및 검색 35 | - 저장된 선수 정보를 이름으로 호출하여 골,어시스트,파울수를 수정한다. 36 | - 저장된 선수 정보를 이름으로 호출하여 출력한다. 37 | 38 | ![수정및검색](https://user-images.githubusercontent.com/115532120/195993063-404e5e64-5edf-4533-8952-fc92abf7eaff.png) 39 | 40 | ### 4. 선수정보 삭제 41 | - 저장된 선수 정보를 이름으로 호출하여 삭제한다. 42 | 43 | ![삭제](https://user-images.githubusercontent.com/115532120/195993278-d703c291-8ea7-441e-b82b-5e07dfdb171f.png) 44 | 45 | 46 | ### 5. 선수정보 정렬 47 | - 저장된 선수들의 골,어시스트,포인트를 내림차순으로 정렬하여 출력한다. 48 | 49 | ![정렬](https://user-images.githubusercontent.com/115532120/195993190-365aceaf-0472-4f2b-b0ab-0c4c2335c4bd.png) 50 | 51 | ### 6. 선수정보 통계 52 | - 저장된 선수 정보 중 최다득점,최다어시스트,최소파울을 한 선수의 이름을 출력한다. 53 | 54 | ![통계](https://user-images.githubusercontent.com/115532120/195993357-058a0a85-963a-40a0-a15a-cc353627b646.png) 55 | 56 | ### 7. 종료 57 | - 축구선수 순위 관리프로그램을 종료한다. 58 | 59 | ![종료](https://user-images.githubusercontent.com/115532120/195993379-c264460a-4d8f-4fe9-89ed-cef47b750674.png) 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /soccerPlayer.sql: -------------------------------------------------------------------------------- 1 | -- soccerplayer 데이터베이스 생성 2 | 3 | drop database if exists soccerplayerDB; 4 | create database soccerplayerDB; 5 | 6 | 7 | 8 | -- soccerplayer 데이터베이스 사용 9 | 10 | use soccerplayerDB; 11 | 12 | 13 | 14 | -- soccerplayer 테이블 생성 15 | 16 | CREATE TABLE soccerplayer ( 17 | name CHAR(10) NOT NULL, 18 | team CHAR(10) NOT NULL, 19 | goal INT NOT NULL, 20 | assist INT NOT NULL, 21 | foul INT NOT NULL, 22 | point INT NULL, 23 | rate INT NULL, 24 | constraint pk_soccerplayer_name primary key(name) 25 | ); 26 | 27 | -- 인덱스 생성 28 | 29 | 30 | alter table soccerplayer drop index idx_soccerplayer_name; 31 | create index idx_soccerplayer_name on soccerplayer(name); 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -- soccerplayer 입력 프로시져 생성 40 | 41 | delimiter // 42 | create procedure 43 | procedure_insert_soccerplayer( 44 | IN in_name char(10), 45 | IN in_team char(10), 46 | In in_goal int, 47 | In in_assist int, 48 | In in_foul int 49 | ) 50 | begin 51 | DECLARE in_point int default 0; 52 | SET in_point = in_goal + in_assist; 53 | 54 | insert into soccerplayer(name,team,goal,assist,foul) values(in_name,in_team,in_goal,in_assist,in_foul); 55 | UPDATE soccerplayer set point = in_point where name = in_name; 56 | end // 57 | delimiter ; 58 | 59 | 60 | 61 | -- soccerplayer 수정 프로시져 생성 62 | 63 | delimiter // 64 | create procedure 65 | procedure_update_soccerplayer( 66 | IN in_name char(10), 67 | IN in_team char(10), 68 | In in_goal int, 69 | In in_assist int, 70 | In in_foul int 71 | ) 72 | begin 73 | DECLARE in_point int default 0; 74 | SET in_point = in_goal + in_assist; 75 | 76 | UPDATE soccerplayer set name=in_name, team = in_team ,goal=in_goal,assist=in_assist,foul=in_foul,point = in_point where name = in_name; 77 | end // 78 | delimiter ; 79 | 80 | 81 | 82 | -- soccerplayer 삭제 프로시져 생성 83 | 84 | delimiter // 85 | create procedure 86 | procedure_delete_soccerplayer( 87 | IN in_name char(10) 88 | ) 89 | begin 90 | DECLARE in_point int default 0; 91 | delete from soccerplayer where name = in_name; 92 | end // 93 | delimiter ; 94 | 95 | 96 | 97 | -- soccerplayer 삭제 테이블 생성 98 | 99 | create table deleteSoccerPlayer( 100 | name char(10) not null primary key, 101 | team char(10) not null, 102 | goal int not null, 103 | assist int not null, 104 | foul int not null, 105 | point int not null, 106 | rate int null default 0, 107 | deleteDate datetime 108 | ); 109 | 110 | 111 | 112 | -- soccerplayer 수정 테이블 생성 113 | 114 | create table updateSoccerPlayer( 115 | name char(10) not null primary key, 116 | team char(10) not null, 117 | goal int not null, 118 | assist int not null, 119 | foul int not null, 120 | point int not null, 121 | rate int null default 0, 122 | updateDate datetime 123 | ); 124 | -- soccerplayer 삭제 트리거 생성 125 | 126 | delimiter // 127 | create trigger trg_deleteSoccerPlayer 128 | after delete 129 | on soccerPlayer 130 | for each row 131 | begin 132 | insert into `deletesoccerplayer` values(old.name,old.team,old.goal,old.assist,old.foul,old.point,old.rate,now()); 133 | end // 134 | delimiter ; 135 | 136 | 137 | 138 | -- soccerplayer 수정 트리거 생성 139 | 140 | delimiter // 141 | create trigger trg_updateSoccerPlayer 142 | after update 143 | on soccerPlayer 144 | for each row 145 | begin 146 | insert into `updatesoccerplayer` values(old.name,old.team,old.goal,old.assist,old.foul,old.point,old.rate,now()); 147 | end // 148 | delimiter ; 149 | -------------------------------------------------------------------------------- /src/soccer/DBConnection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fkrbtjs/soccerplayerProgram-java-project/ec05882351ff59c291773bd53849ccd60f599faa/src/soccer/DBConnection.java -------------------------------------------------------------------------------- /src/soccer/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fkrbtjs/soccerplayerProgram-java-project/ec05882351ff59c291773bd53849ccd60f599faa/src/soccer/Main.java -------------------------------------------------------------------------------- /src/soccer/SoccerPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fkrbtjs/soccerplayerProgram-java-project/ec05882351ff59c291773bd53849ccd60f599faa/src/soccer/SoccerPlayer.java --------------------------------------------------------------------------------