JAVA
JDBC
docc
2021. 7. 24. 22:47
객체 지향
자바의 객체지향
객체( 상태=객체의 상태 + 행동) & 상태(독립상태= 인스턴스변수로 선언하지 않고 메서드 내에서 지역변수로 선언한 것들.)
C언어와 객체지향 차이
C언어:
상태 (값=변수) , 행동(함수)
객체가 없고 상태 따로 행동 따로 다룸.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
//회원객체를 위한 설명서
class 회원 { // 레코드(튜플), 레코드가 여러개 모이면 표.
int 번호; // 필드
String 성명;
String 주민번호;
}
public class App {
public static void 회원등록하다(회원 새회원) {
try {
// DB연결관리객체: Connection, 명령전달객체: Statement, 질의결과관리객체: ResultSet
Class.forName("com.mysql.cj.jdbc.Driver");
// 1. 드라이버관리자야 연결자를 줄래, 연결자는(mydb1인 DB를 가지고 올, id, pass)인 MySQL의 DB연결관리자야,
Connection DB연결관리자 = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1?useUnicode=true",
"root", "1234");
// 2. DB연결관리자 통해 명령전달자를 얻는다.
Statement 명령전달자 = DB연결관리자.createStatement();
System.out.println("연결 성공");
// 3. 명령하기
String 삽입SQL = "insert into 회원(성명,주민번호) values('" + 새회원.성명 + "','" + 새회원.주민번호 + "');";
명령전달자.executeUpdate(삽입SQL); // 명령전달자가 보낸다.
// 4. 연결끊기
DB연결관리자.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
회원 새회원 = new 회원();
새회원.성명 = "라길동";
새회원.주민번호 = "777";
회원등록하다(새회원);
System.out.println("등록되었다.");
}
}
//MySQL, mydb1 데이터베이스에 있는 회원테이블에 성명,주민번호가 등록된다.
|
cs |
<body>
회원등록<br>
<form action= "등록.jsp" method="POST">
성명<input type = "text" name = "name"><br>
주민번호<input type="text" name ="pnumber"><br>
<input type = "submit" name = "등록">
</form>
</body>
<%
request.setCharacterEncoding("UTF-8");
//요청처리객체야 넘어온 데이터중 이름이 "name" 인 것 줘라.
String 성명 = request.getParameter("name");
String 주민번호 = request.getParameter("pnumber");
System.out.println(성명);
System.out.println(주민번호);
%>
jsp에 메서드를 넣을 때 library클래스들은 import해와야한다.(윗설명 아래예시 참조)
다운받은 library는 이 동적프로그램안에 없고 java프로젝트에만 넣었으니
동적프로그램 : WebContent - WEB-INF - lib 안에다가 lib폴더를 복사해서 넣으면 끝난다.(톰캣이 관리하는 폴더)
javaproject는 읽는 기능이 없어 저번에 설정을 따로 했지만 톰캣은 자동으로 해석하기 때문에 아무것도 안해도 된다.
이제 import로 다운받은 library를 쓸 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%!
//<%! : 메서드 정의, 행동설명//
public static void 회원등록하다(String 성명, String 주민번호) {
try {
// DB연결관리객체: Connection, 명령전달객체: Statement, 질의결과관리객체: ResultSet
// 0. 드라이버로드. 다운받은 mysql-library에 있는 Driver가져오면 된다.
Class.forName("com.mysql.cj.jdbc.Driver");
// 1. 드라이버관리자를 통해 DB연결자를 얻는다.(이미 연결된 상태로)
// 드라이버관리자야 연결자를 줄래, 연결자는(mydb1인 DB를 가지고 올, id, pass)인 MySQL의 DB연결관리자야,
// DB연결관리자 = Connection인터페이스 익명객체이다.
Connection DB연결관리자 = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1?useUnicode=true",
"root", "1234");
// 2. DB연결관리자 통해 명령전달자를 얻는다.
// 명령전달자 = Statement인터페이스 익명객체이다.
Statement 명령전달자 = DB연결관리자.createStatement();
System.out.println("연결 성공");
// 3. 명령하기
String 삽입SQL = "insert into 회원(성명,주민번호) values('" + 성명 + "','" + 주민번호 + "');";
명령전달자.executeUpdate(삽입SQL); // 명령전달자가 보낸다.
// 4. 연결끊기
// DB연결관리자야 연결 끊어
DB연결관리자.close();
} catch (Exception e) {
e.printStackTrace();
}
}
%>
<%
//요청처리객체야 넘어온 데이터를 UTF-8로 인코딩 해줘.(안 그러면 다른걸로 넘어와서 한글깨짐)
request.setCharacterEncoding("UTF-8");
//요청처리객체야 넘어온 데이터중 이름이 "name" 인 것 줘라.
String 성명 = request.getParameter("name");
String 주민번호 = request.getParameter("pnumber");
회원등록하다(성명,주민번호);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
등록되었습니다.
</body>
</html>