본문 바로가기
JAVA

java Statement 자바에서 디비 조회

by redbear0077 2022. 11. 11.
반응형

java Statement 자바에서 디비 조회

mysql 기준

 

1. 디비 연결

  - 연결 성공시 mysql 연결 ...을 출력한다.

public class DBDataTest {
	
    static String driver = "jdbc:mysql://123.123.123.1:포트/디비명?characterEncoding=utf8";
    static String user = "testId";
    static String passwd = "testPasswd";

    Statement stat = null;
    ResultSet rs = null;

    private static Connection connectionDB() throws Exception{
        System.out.println("mysql 연결 ...");
        return DriverManager.getConnection(driver, user, passwd);
    }
}

 

2. 테이블 데이터 조회

  - executeUpdate(sql);

      int 를 반환해준다(몇개를 등록했는지 insert, update할때주로 사용)

  - executeQuery(sql);

      ResultSet타입으로 반환해준다(데이터 확인을위해 select할때주로 사용)

public class DBDataTest {
    static String driver = "jdbc:mysql://123.123.123.1:포트/디비명?characterEncoding=utf8";
    static String user = "testId";
    static String passwd = "testPasswd";

    Statement stat = null;
    ResultSet rs = null;
    List<Map<String, String>> resultList = new ArrayList();

    private static Connection connectionDB() throws Exception{
        System.out.println("mysql 연결 ...");
        return DriverManager.getConnection(driver, user, passwd);
    }
    public List select(Connection conn)throws Exception {
    	System.out.println("select Start ...");

    	StringBuffer sb = new StringBuffer();
    	sb.append("SELECT * ");
    	sb.append("FROM TestTable");
    	String sql = sb.toString();

    	//////////////////////////////////////////////////////////////////////////////////////////
    	/** 여기서는 *로 조회하지만컬럼이름을 다써주는 것이 좋다. */

    	String sql = "SELECT ";
    	sql += "* ";
    	sql += "FROM TestTable";

    	///////////////////////////////////////////////////////////////////////////////////////////
    	/** StringBuffer와 String둘중 하나를 상황에 따라 적절하게 사용할수 있다. */

        try {
            //Statement객체 생성
            stmt = conn.createStatement();
            //ResultSet타입으로 반환해준다(데이터 확인을위해 select할때주로 사용)
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
            	HashMap<String, String> resultMap = new HashMap();
                //형식
                //key : 데이터 받을 컬럼명 또는 원하는 이름(보통 vo에 선언했다면 그이른을 사용한다.
                //value : 테이블 컬럼명
                resultMap.put("test1", rs.getString("test1"));
                resultMap.put("test2", rs.getString("test2"));
                resultMap.put("test3", rs.getString("test3"));
                resultMap.put("test4", rs.getString("test4"));
                resultList.add(resultMap);
            } catch(Exception e) {
                System.out.println("----- select Error  -----");
                e.printStackTrace();
            } finally {
                 if(rs != null) try{rs.close();}catch(Exception ee){}
                 if(stmt != null) try{stmt.close();}catch(Exception ee){}
            }
            System.out.println("select end ...");
            return resultList;
        }
    }
}

 

3. 테이블 데이터 등록

  - executeUpdate(sql);

      int 를 반환해준다(몇개를 등록했는지 insert, update할때주로 사용)

  - executeQuery(sql);

      ResultSet타입으로 반환해준다(데이터 확인을위해 select할때주로 사용)

 

public class DBDataTest {
    static String driver = "jdbc:mysql://123.123.123.1:포트/디비명?characterEncoding=utf8";
    static String user = "testId";
    static String passwd = "testPasswd";

    Statement stat = null;
    ResultSet rs = null;

	private static Connection connectionDB() throws Exception{
        System.out.println("mysql 연결 ...");
        return DriverManager.getConnection(driver, user, passwd);
    }
    public void insert(Connection conn)throws Exception {
    	System.out.println("INSERT Start ...");

    	StringBuffer sb = new StringBuffer();
    	sb.append("INSERT ");
    	sb.append("test1, test2, test3, test4");
        sb.append("'"+값1+"',");
        .
        .
        .
         sb.append("'"+값1+"'");
    	String sql = sb.toString();

    	//////////////////////////////////////////////////////////////////////////////////////////

    	String sql = "INSERT ";
    	sql += "test1, test2, test3, test4";
    	sql += "VALUES(";
        /** 
        	원하는 값을 넣을수있다. 
         	예
            sql += "'"+m.get("값1")+"',";
            sql += "'"+list.get(0)+"',";
         */
        sql += "'"+값1+"',";
        sql += "'"+값2+"',";
        sql += "'"+값3+"',";
        sql += "'"+값4+"'";
        sql += ")";

    	///////////////////////////////////////////////////////////////////////////////////////////
    	/** StringBuffer와 String둘중 하나를 상황에 따라 적절하게 사용할수 있다. */
		
        try {
        	//Statement객체 생성
    		stmt = conn.createStatement();
            //int 를 반환해준다(몇개를 등록,수정 했는지 insert, update할때주로 사용)
        	stmt.executeUpdate(sql);
        } catch(Exception e) {
        	System.out.println("----- INSERT Error  -----");
        	e.printStackTrace();
        } finally {
        	if(stat != null) try{stat.close();}catch(Exception ee){}
        }
        System.out.println("INSERT end ...");
    }
}
반응형

'JAVA' 카테고리의 다른 글

java split작동 안할때  (0) 2022.11.09
JAVA split특정문자 자르기  (0) 2022.10.25
JAVA 1초당 1회 출력 (Timer)  (0) 2022.09.23
java(자바)에서 alert띄우기  (0) 2021.10.26
자바 에서 session 값 가져오기  (0) 2021.09.16