디비생성프로그램 MVC 학생관리프로그램 [JAVA]

*Market Db 프로그램
Market Db는 프로그램기반으로 구동되며
3대오픈마켓 판매 사업자들의 정보를 얻을수 있는 디비생성프로그램 으로서
상호/ 대표번호 / 주소 / 핸드폰 번호 수집등의 기능으로 99%이상의 유효 디비생성프로그램 으로 활용 가능하십니다
 오픈마켓 사업자들의 샵, 이메일, 주소, 연락처, 법인(개인) 사업자 정보 를 통해서 필터링 되는만큼 온라인 유통업체, 홈페이지 제작업체, 마케팅 업체등 다양한 업종의 영업에 적재적소로 활용할수 있는 필수적인 디비생성프로그램입니다.
*마케팅몬스터 구매 문의
☏ 카카오톡 aramis0104
☏ HP 010-7424-0013
☏ 오픈채팅 https://open.kakao.com/o/s4CWZYH
                          ☏ 프로그램 상세보기 https://marketingmonster.kr/detail.siso?CODE=68                                                                                               
☏ 프로그램 구동영상 https://youtu.be/FK_v7liC54w



Connection;import java. sql. sql. package model;import java.

PreparedStatement;import java. sql. sql. DriverManager;import java.

driver. OracleDriver”; String url = “jdbc:oracle:thin:@localhost:1521:xe”; String user = “kim”; String password = “1234”; Connection conn = null; // 스코프를 맞춰주기 위해 try문 밖에 선언 try { conn = DriverManager. jdbc. SQLException;public class JDBC { public static Connection getConnection() { String DName = “oracle.

close(); conn. close(); } catch (SQLException e) { // TODO Auto-generated catch block e. printStackTrace(); } return conn; } public static void close(Connection conn, PreparedStatement pstmt) { try { pstmt. getConnection(url, user, password); } catch (SQLException e) { // TODO Auto-generated catch block e.

num = num; } public String getName() { return name; } public void setName(String name) { this. name = name; } public int getScore1() { return score1; } public void setScore1(int score1) { this. student;public class StudentVO { private int num; // primary key, private String name; private int score1; private int score2; private char grade; // 디비에서 성적을 가지고오면 성적을 알려줄 grade를 낱 별도 생성 public int getNum() { return num; } public void setNum(int num) { this. printStackTrace(); } }}package model.

grade = grade; } @Override public String toString() { returnname + “수강생의 급은 [“+grade+”] 입니다. “; }}package model. score2 = score2; } public char getGrade() { return grade; } public void setGrade(char grade) { this. score1 = score1; } public int getScore2() { return score2; } public void setScore2(int score2) { this.

Connection;import java. sql. sql. student;import java.

ResultSet;import java. sql. sql. PreparedStatement;import java.

ArrayList;import model. JDBC;public class StudentDAO { private Connection conn =null; private PreparedStatement pstmt=null; // sql문 // SELECT_ONE의 경우 로그인, 인증감당 에서 이용 static String sql_SELECT_ONE = “SELECT * FROM STUDENT WHERE NUM=?”; static String sql_SELECT_ALL = “SELECT * FROM STUDENT ORDER BY NUM ASC”; // LIKE 구문을 활용한 검출짐짓 ALL. util. SQLException;import java.

0) { res =’A’; }else if(avg>=70. 0) { res =’B’; }else if(avg>=50. 0; if(avg>=90. 검출, 무수의 데이터가 반환될수 있는 감당 – 검출결과가 없거나 1일수도 있음 static String sql_SELECT_LIKE = “SELECT * FROM STUDENT WHERE NAME LIKE ? ORDER BY NUM ASC”; static String sql_INSERT = “INSERT INTO STUDENT VALUES ((SELECT NVL(MAX(NUM),0)+1 FROM STUDENT),?,?,?)”; // 변경 –> 마이책장 각오해보기 static String sql_UPDATE = “UPDATE STUDENT 벌 NAME =?,SCORE1 =?,SCORE2=? WHERE NUM=?”; static String sql_DELETE = “DELETE FROM STUDENT WHERE NUM=?”; char returnGrade(int score1, int score2) { char res = ‘F’; double avg = (score1+score2)/2.

prepareStatement(sql_SELECT_ONE); pstmt. setInt(1,vo. getConnection(); StudentVO data = null; // 검출결과가 없을때 null 반환 try { pstmt = conn. 0) { res =’C’; } return res; } // select (단일) public StudentVO selectOne(StudentVO vo) { conn = JDBC.

next()) { data = new StudentVO(); data. setNum(rs. executeQuery(); if(rs. getNum()); ResultSet rs = pstmt.

getString(“name”)); data. setScore1(rs. setName(rs. getInt(“num”)); data.

getInt(“score2”)); data. setGrade(returnGrade(rs. setScore2(rs. getInt(“score1”)); data.

아웃사이드. println(“검출결과없음!”); }*/ rs. getInt(“score2”))); }/*else { System. getInt(“score1”),rs.

close(conn, pstmt); }System. 아웃사이드. printStackTrace(); }finally { JDBC. close(); } catch (SQLException e) { // TODO Auto-generated catch block e.

prepareStatement(sql_SELECT_ALL); ResultSet rs =pstmt. executeQuery(); //boolean flag = true; // 검출결과가 있는지 없는지 감정할flag while(rs. getConnection(); ArrayList datas = new ArrayList<>(); try { pstmt = conn. println(“[SELECT_ONE]수행끝막음!”); return data; } // select (총체) public ArrayList selectAll(StudentVO vo){ // (StudentVO vo) 검출작용을 별도할경우 , vo객체를 인자로 넣어놓았기 까닭에 vo에 있는 첩보를 이용하여 이용하면 됨 //why? 유지보수성! conn = JDBC.

setNum(rs. getInt(“num”)); data. StudentVO data = new StudentVO(); data. next()) { //flag = false; // while문 안으로 들어오면 이 라인을 만나기 까닭에 flag가 false가 되서 아래쪽에 if문에서 가면으로 감정되어 if문이 수행되지 않음.

setScore1(rs. getInt(“score1”)); data. getString(“name”)); data. setName(rs.

setGrade(returnGrade(rs. getInt(“score1”),rs. getInt(“score2”)); data. setScore2(rs.

close(); /*if(flag) { //여혹 검출후 결과가 없으면 flag가 true이기 까닭에 System. 아웃사이드. add(data); } rs. getInt(“score2”))); datas.

close(conn, pstmt); }System. 아웃사이드. printStackTrace(); }finally { JDBC. println(“검출결과없음”); }*/ } catch (SQLException e) { // TODO Auto-generated catch block e.

getConnection(); try { pstmt = conn. prepareStatement(sql_INSERT); pstmt. public void insert(StudentVO vo) { // 인자를 3개를 받지 않고 이 3개를 일차에 담을수 있는 VO객체를 이용한다 conn = JDBC. println(“[SELECT_ALL]수행끝막음!”); return datas; } // insert :인자를 받아 db에 담아놓는 소행를 한다.

pstmt. setInt(2, vo. getName()); //?에 들어갈 데이터를 벌TING한다. setString(1, vo.

getScore2()); pstmt. executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e. setInt(3, vo. getScore1()); // pstmt.

아웃사이드. println(“[INSERT]수행끝막음!”); } // update public void update(StudentVO vo) { conn = JDBC. close(conn, pstmt); } System. printStackTrace(); }finally { JDBC.

setInt(4,vo. getNum()); pstmt. prepareStatement(sql_UPDATE); pstmt. getConnection(); try { pstmt = conn.

setInt(2, vo. getScore1()); pstmt. getName()); pstmt. setString(1, vo.

executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e. printStackTrace(); }finally { JDBC. getScore2()); pstmt. setInt(3, vo.

println(“[UPDATE]수행끝막음!”); } // delete public void delete(StudentVO vo) { conn = JDBC. getConnection(); try { pstmt = conn. 아웃사이드. close(conn, pstmt); } System.

getNum()); pstmt. executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e. setInt(1, vo. prepareStatement(sql_DELETE); pstmt.

아웃사이드. println(“[DELETE]수행끝막음!”); }}package View;import java. close(conn, pstmt); } System. printStackTrace(); }finally { JDBC.

util. Random;import java. ArrayList;import java. util.

student. StudentDAO;import model. Scanner;import model. util.

in); // 이용자의 요망을 받을 스캐너 객체 StudentDAO dao = new StudentDAO(); // student상과 DB연동하는 객체 Random rand = new Random(); // 득점를 랜덤으로 생성하는 객체 StudentVO vo = new StudentVO(); // DAO의 인자로 이용하는 객체 while (true) { // while(1) System. 아웃사이드. StudentVO;public class StudentView { public static void main(String[] args) { Scanner sc = new Scanner(System. student.

아웃사이드. println(“NAME : “); String name = sc. nextInt(); if (act == 1) { // 인풋 // 뷰 몫 System. println(“[1]인풋 [2]변경 [3]삭제 [4]검출 [5]리스트아웃풋 [6]끝막음”); int act = sc.

nextInt(101); vo. setName(name); // 컨트롤러 몫 vo. nextInt(101); int score2 = rand. next(); int score1 = rand.

insert(vo); } else if (act == 2) { // 변경 // 첩보변경시 미리 get을 해오고 변경 System. 아웃사이드. setScore2(score2); dao. setScore1(score1); vo.

println(“Login — check complete”); System. 아웃사이드. 아웃사이드. println(“***[첩보변경]***”); System.

setNum(num); // vo에 인풋받은 num이 셋팅됨 vo = dao. selectOne(vo); // selectOne의 로직에서 db에 있는 num의 첩보를 세팅 if (vo == null) { System. nextInt(); vo. println(“바꿀 수강생의 넘버인풋 : “); int num = sc.

“); // 검출결과가 없을때마다 vo가 null이 되기 까닭에 // vo가 null이면 아무것도 수행할수 없으므로 새로 vo를 생성 // –> null. setNum 이 되기까닭에 주체가 없어져서 이용불가하니까 vo = new StudentVO(); // 새로운 주체를 만들어준다. println(“검출결과가 없습니다. 아웃사이드.

println(“마이책장 : ” + vo); System. 아웃사이드. 아웃사이드. continue; } // 변경단 System.

아웃사이드. println(“새로운명목인풋: “); String name = sc. nextInt(); if (act == 1) { System. println(“1)명목 2)성적”); act = sc.

아웃사이드. println(“득점리셋끝막음!”); vo. setName(name);// 변경내역저장 } else { int score1 = 0; int score2 = 0; System. next(); vo.

update(vo); } else if (act == 3) { // 삭제 // 1) 성원이탈 System. 아웃사이드. setScore2(score2); // 변경내역 저장 } dao. setScore1(score1); // 변경내역 저장 vo.

println(“로그인-인증감당”); System. 아웃사이드. 아웃사이드. println(“첩보삭제”); System.

setNum(num); vo = dao. selectOne(vo); if (vo == null) { System. nextInt(); vo. println(“삭제할 수강생의 넘버인풋”); int num = sc.

아웃사이드. println(“마이책장: ” + vo); System. println(“검출결과가 없습니다!”); vo = new StudentVO(); continue; } // 로그인인증->마이책장->성원이탈 System. 아웃사이드.

println(“성원이탈를 진행합니다. 아웃사이드.

아웃사이드. println(“성원이탈끝막음!”); // 로그인 인증 -> 마이책장->성원이탈 System. delete(vo); System. “); dao.

아웃사이드. println(“삭제할 수강생의 넘버인풋 : “); num = sc. println(); // 2)관리자 – 데이터 삭제 (관리자원) System. 아웃사이드.

delete(vo); // delete()의 수행결과를 반환받을수 있어야한다. } else if (act == 4) { // 검출 System. setNum(num); dao. nextInt(); vo.

nextInt(); vo. setNum(num); vo = dao. println(“수강생넘버인풋 :”); int num = sc. 아웃사이드.

println(“검출결과없음”); vo = new StudentVO(); continue; // 컨티뉴로 안위 돌려버림 } System. 아웃사이드. 아웃사이드. selectOne(vo); if (vo == null) { // 검출결과가 없는 분위기을 각별한 분위기이라고 각오하고 if문으로 잡은후 System.

println(“========수강생리스트========”); ArrayList datas = dao. selectAll(vo); if (datas. 아웃사이드. println(“[검출결과]\n” + vo); } else if (act == 5) { // 리스트아웃풋 System.

println(“검출결과 없음!”); } for (StudentVO v : datas) { System. 아웃사이드. 아웃사이드. size() == 0) { System.

println(“곡목 끝막음!”); break; } else { System. 아웃사이드. 아웃사이드. println(v); } } else if (act == 6) { // 끝막음 —> while(1)의 끝막음요소 System.

println(“잘못된 인풋!”); } } }} .

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다