본문 바로가기
(JAVA)자바/(JAVA)자바 DB-데이터 베이스

(sqlite) 자바 jdbc연동- 정보입력 프로그램(simple)

by 공부가싫다가도좋아 2021. 1. 29.
반응형

데이터 연동- 간단한 정보입력 프로그램


간단한 정보입력 프로그램을 데이터베이스 연동을 하여 만들어 보았습니다.

지금은 뭔가 코드가 깔끔한 느낌이 아닌것 같지만...!!!

나중에는 코드도 더 깔끔하게 ,그리고 더 복잡한 프로그램을 만들어 봐야겠네요!! :)

Driver class,input class, output class 세개로 나눠서 만들었습니다~!!

 

package SQlite;

import java.sql.*;
import java.util.Scanner;

public class Driver { //driver class
	String name;  //이름
	int age;      //나이
	String num;    //전화번호
	
	Driver(){
		
	}
	void run(){
		Connection con=null;  
		try {
			con=DriverManager.getConnection("jdbc:sqlite:student_info.db");  
            //sqlite 연동
			
            Statement state=con.createStatement();
            //명령어 전달 statement연동
			
			state.executeUpdate("drop table if exists info");  
            //명령어 전달-info테이블이 있었으면 삭제
            
			state.executeUpdate("create table info(name string,"
					+ " age integer, num string)"); 
                    //info 테이블 생성
			con.close(); //연결끊기
		}catch(Exception e) {
			System.out.println(e.getMessage());
		}
		Scanner scan=new Scanner(System.in);
		for(;;) {
			menu();
			int select=scan.nextInt();
			if (select==1) {
				Input input=new Input();
				input.input();
				
			}
			if(select==2) {
				Output output=new Output();
				output.output();
			}
			if(select==3) {
				break;
			}
			
		}
		
	}
	void menu() {
		System.out.println("menu");
		System.out.println("1.input");
		System.out.println("2.output");
		System.out.println("3.break;");
		System.out.print(">>>");
	}

	public static void main(String[] args) {
		Driver d=new Driver();
		d.run();

	}

}

 

package SQlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class Input {
	Connection con=null;
	Scanner scan=new Scanner(System.in);
	
	Input(){
		
	}
	void input() {
		try {
			con=DriverManager.getConnection("jdbc:sqlite:student_info.db");
			Driver d=new Driver();
			Statement state=con.createStatement();
			
			System.out.println("이름:");
			d.name=scan.next();
			System.out.println("나이:");
			while(!scan.hasNextInt()) {
				scan.next();
				System.err.println("숫자만 입력가능.");
				System.out.println("나이:");
			}
			d.age=scan.nextInt();
			System.out.println("전화번호:");
			d.num=scan.next();
			
			state.executeUpdate("insert into info values"
					+ "('"+d.name+"'"
					+ ","+d.age+""
					+ ",'"+d.num+"')");  //정보 데이터에 저장
			
			con.close();
			
		}catch(SQLException e) {
			System.err.println(e.getMessage());
		}
		
		
	}

}

 

package SQlite;

import java.sql.*;
import java.util.*;

public class Output {
	Connection con = null;

	Output() {

	}

	void output() {
		try {
			con = DriverManager.getConnection("jdbc:sqlite:student_info.db");
			Statement state = con.createStatement();

			ResultSet rs = state.executeQuery("select * from info");

			while (rs.next()) {
				System.out.println(
						"이름:" + rs.getString("name") + 
						", 나이:" + rs.getInt("age") + 
						", 전화번호:" + rs.getString("num"));
				//정보 테이터베이스에서 가져오기
			}
			rs.close();
			con.close();

		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
	}

}

 

반응형

댓글