Do it/Practice

stmt / pstmt 사용 비교

develop_mii 2025. 8. 18. 13:01

# stmt

request.setCharacterEncoding("utf-8");
		
String mid = request.getParameter("mid");
String mpw = request.getParameter("mpw");
String mname = request.getParameter("mname");
String memail = request.getParameter("memail");
		

String driverName = "com.mysql.jdbc.Driver";   
String url = "jdbc:mysql://localhost:3306/jspdb";
String userName = "root";
String password = "12345";
			
            
String sql = "INSERT INTO members(memberid, memberpw, membername, memberemail) 
              VALUES('"+ mid +"','" +  mpw + "','" + mname + "','" + memail + "')" ;
		
Connection conn = null;
Statement stmt = null ;			
			
try {
	Class.forName(driverName);  // MYSQL 드라이버 클래스 불러오기
	conn = DriverManager.getConnection(url, userName, password); 
	stmt = conn.createStatement();  
				
	int sqlResult = stmt.executeUpdate(sql); 
	System.out.println(sqlResult);
	
    } catch (Exception e) {
		out.println("db 에러 발생"); 
		e.printStackTrace();  //에러 내용 출력
	
    } finally {  
	  try {
		if(stmt != null){  // stmt가 null이 아니면 닫기 --- conn보다 먼저 닫아야한다
		  stmt.close();
		}
		if(conn != null) {  // 커넥션이 null값이 아닐때만 닫기
		  conn.close();
		}
	  }catch(Exception e) {
		e.printStackTrace();
		 }
	}

 

pstmt

request.setCharacterEncoding("utf-8");
		
String mid = request.getParameter("mid");
String mpw = request.getParameter("mpw");
String mname = request.getParameter("mname");
String memail = request.getParameter("memail");
		
			
String driverName = "com.mysql.jdbc.Driver";   
String url = "jdbc:mysql://localhost:3306/jspdb";
String userName = "root";
String password = "12345";
			
//sql문 만들기
String sql = "INSERT INTO members(memberid, memberpw, membername, memberemail) VALUES(?,?,?,?)" ; 
		
Connection conn = null;
			
PreparedStatement pstmt = null; 
			
try {
	Class.forName(driverName);  
				
	conn = DriverManager.getConnection(url, userName, password);  
			
	pstmt = conn.prepareStatement(sql);
	pstmt.setString(1, mid);  // parameterIndex : 인덱스순서(1부터)
	pstmt.setString(2, mpw); 
	pstmt.setString(3, mname); 
	pstmt.setString(4, memail); 
				
    int sqlResult = pstmt.executeUpdate();  // pstmt쓸때는 이미 (sql)위에 써서 여긴 (); 비워둔다
			 
	} catch (Exception e) {
		out.println("db 에러 발생"); 
		e.printStackTrace();  //에러 내용 출력
	} finally {  
	  try {
		if(pstmt != null){  // stmt가 null이 아니면 닫기 --- conn보다 먼저 닫아야한다
			pstmt.close();
		  }
		if(conn != null) {  // 커넥션이 null값이 아닐때만 닫기
			conn.close();
		  }
		}catch(Exception e) {
		  e.printStackTrace();
		  }
		}

'Do it > Practice' 카테고리의 다른 글

JDBC DB연결 예제  (2) 2025.08.18
MySQL) JOIN연습  (0) 2025.08.13
MySQL) SELECT문 연습  (1) 2025.08.12
Java) 예외처리 연습문제  (2) 2025.08.05
Java) String 클래스 연습  (1) 2025.08.04