my SQL ๋จผ์ ์คํ(๋ก๊ทธ์ธ)
show databases;
์
๋ ฅ
create database jspdb;
์
๋ ฅ
use jspdb;
ํ์ฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๋ณ๊ฒฝ
show tables;
ํ์์๋ ์๋ฌด๋ฐ ํ
์ด๋ธ ์๋ค๊ณ ๋์ด(์๋กญ๊ฒ ๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฌด๊ฒ๋ ์๊ธฐ๋๋ฌธ)
Create table member( id int not null auto_increment, name varchar (100) not null, passwd varchar(50) not null, primary key(id) );
์คํ ํ์ฌ ํ
์ด๋ธ ์์ฑ ํ ํ์ธ(show tables;
)
๋ฐ์ดํฐ ์ํฉ ํ์ธ ํ,
insert into member values(1,'ํ๊ธธ๋','1234');
์คํํ์ฌ ๋ฐ์ดํฐ ์ถ๊ฐ
์ดํด๋ฆฝ์ค๋ก ๋์์์ Connection.jsp๊ธฐ๋ฐ์ผ๋ก ์คํํ์ฌ ์ค๋ผํด ์ฐ๊ฒฐ ํ์ธ ๊ทธํ Connection.jsp๊ธฐ๋ฐ์ผ๋ก connectionMySql.jsp์์ฑ
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
Connection con = null;
try {
String url = "jdbc:mysql://localhost:3306/jspdb";
String user = "ใ
";
String password = "ใ
ใ
";
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url, user, password);
out.print("SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ์ฑ๊ณตํ์ต๋๋ค.<br>");
} catch(SQLException ex) {
out.print("SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ์คํจํ์ต๋๋ค.<br>");
out.print("SQLException : "+ex.getMessage());
} finally {
if(con != null) {
con.close();
}
}
%>
</body>
</html>
๊ทธ ํ C:\Tomcat 9.0\lib์ sql.jar ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ณ ์คํํ๋ฉด ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ฑ๊ณตํ๋ค๋ธ
ํ์ฌ๊น์ง 2๋จ๊ณ Connection๊น์ง ์๋ฃ.
*. 3๋จ๊ณ
Statement stmt = con.createStatement( );
: ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๊ฐ์ฒด ์์ฑ
stmt.executeQuery()=>SQL ์ฟผ๋ฆฌ ์์ฑ
stmt.executeUpdate()=> SQL ์ฟผ๋ฆฌ ไธญ ์์ (์ฝ์
, ์ญ์ ๋ฑ)
*. 4๋จ๊ณ
ResultSet
=> ๊ฒฐ๊ณผ ์ถ๋ ฅํจ.(์ด๋ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ์ง๊ณ ์ด)
๋จผ์ ์ฟผ๋ฆฌ ์์ฑํ์ฌ ํ ์ด๋ธ ์์ฑ
CREATE TABLE MEMBER2
(ID VARCHAR2(20) PRIMARY KEY
,PW VARCHAR2(20)
,NAME VARCHAR2(20)
,CLASS NUMBER(2)
,TEL VARCHAR2(20)
);
๋ฐ์ดํฐ ์ฝ์
INSERT INTO MEMBER2 VALUES('trBird','abll','๊นํ์',1,'010-2930-4874');
INSERT INTO MEMBER2 VALUES('yjWood','abcd','์ด์์ ',2,'010-9230-1245');
INSERT INTO MEMBER2 VALUES('jinBear','3333','์กฐ์ง์ด',2,'010-2022-7244');
COMMIT;์ ์คํํ์ฌ์ผ์ง๋ง ์ถํ ์ค๋ฅ๊ฐ ์๋จ
viewMember.jsp ์์ฑ
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%!
Connection conn = null;
Statement stmt = null;//3๋จ๊ณ
ResultSet rs = null; //4๋จ๊ณ
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String password = "tiger";
String selectQuery = "SELECT * FROM MEMBER2";
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<table width = "400" border = "1">
<tr>
<td>์์ด๋</td>
<td>์ด๋ฆ</td>
<td>๋ฑ๊ธ</td>
<td>์ ํ๋ฒํธ</td>
</tr>
<%
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
rs = stmt.executeQuery(selectQuery);
while(rs.next()){ //๋ฐ์ดํฐ๊ฐ ์๋ ๋งํผ ๋ฐ๋ณต
%>
<tr>
<td><%= rs.getString("id") %></td>
<td><%= rs.getString("name") %></td>
<td><%= rs.getInt("class") %></td>
<td><%= rs.getString("tel") %></td>
</tr>
<%
}
}catch(SQLException ex) {
ex.getMessage();
} finally {
try{
if(conn != null) rs.close();
if(conn != null) stmt.close();
if(conn != null) conn.close();
}catch(SQLException ex) {
ex.getMessage();
}
}
%>
</table>
</body>
</html>
์คํํ๋ฉด
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%!
Connection conn = null;
Statement stmt = null;//3๋จ๊ณ
ResultSet rs = null; //4๋จ๊ณ
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String password = "tiger";
String selectQuery = "SELECT * FROM MEMBER2";
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<table width = "400" border = "1">
<tr>
<td>์์ด๋</td>
<td>์ด๋ฆ</td>
<td>๋ฑ๊ธ</td>
<td>์ ํ๋ฒํธ</td>
</tr>
<%
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
rs = stmt.executeQuery(selectQuery);
while(rs.next()){ //๋ฐ์ดํฐ๊ฐ ์๋ ๋งํผ ๋ฐ๋ณต
%>
<tr>
<td><%= rs.getString("id") %></td>
<td><%= rs.getString("name") %></td>
<%-- <td><%= rs.getInt("class") %></td> ์ฃผ์ : Ctrl+Shift+/ --%>
<td>
<%
int n_class = rs.getInt("class");
if(n_class == 1) {
out.print("์ผ๋ฐํ์");
} else {
out.print("๊ต์๋");
}
%>
</td>
<td><%= rs.getString("tel") %></td>
</tr>
<%
}
}catch(SQLException ex) {
ex.getMessage();
} finally {
try{
if(conn != null) rs.close();
if(conn != null) stmt.close();
if(conn != null) conn.close();
}catch(SQLException ex) {
ex.getMessage();
}
}
%>
</table>
</body>
</html>
viewMemberMySql.jsp ์์ฑ
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%!
Connection con = null;
Statement stmt = null;//3๋จ๊ณ
ResultSet rs = null; //4๋จ๊ณ
String url = "jdbc:mysql://localhost:3306/jspdb";
String user = "root";
String password = "1234";
String selectQuery = "SELECT * FROM MEMBER2";
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<table width = "400" border = "1">
<tr>
<td>์์ด๋</td>
<td>์ด๋ฆ</td>
<td>๋ฑ๊ธ</td>
<td>์ ํ๋ฒํธ</td>
</tr>
<%
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
stmt = con.createStatement();
rs = stmt.executeQuery(selectQuery);
while(rs.next()){ //๋ฐ์ดํฐ๊ฐ ์๋ ๋งํผ ๋ฐ๋ณต
%>
<tr>
<td><%= rs.getString("id") %></td>
<td><%= rs.getString("name") %></td>
<%-- <td><%= rs.getInt("class") %></td> ์ฃผ์ : Ctrl+Shift+/ --%>
<td>
<%
int n_class = rs.getInt("class");
if(n_class == 1) {
out.print("์ผ๋ฐํ์");
} else {
out.print("๊ต์๋");
}
%>
</td>
<td><%= rs.getString("tel") %></td>
</tr>
<%
}
}catch(SQLException ex) {
ex.getMessage();
} finally {
try{
if(con != null) rs.close();
if(con != null) stmt.close();
if(con != null) con.close();
}catch(SQLException ex) {
ex.getMessage();
}
}
%>
</table>
</body>
</html>
addForm.html์์ฑ
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="addMember.jsp">
์ ์ด ๋ : <input type="text" name="id" size="20"><br>
๋น๋ฐ๋ฒํธ : <input type="password" name="pw" size="20"><br>
ํ์์ด๋ฆ : <input type="text" name="name" size="20"><br>
ํ์๊ตฌ๋ถ : <input type="radio" name="mclass" value="1">์ผ๋ฐํ์
<input type="radio" name="mclass" value="2">๊ต์๋<br>
์ ํ๋ฒํธ : <select name="phone1">
<option value = "010">010</option>
<option value = "011">011</option>
<option value = "016">016</option>
<option value = "017" selected>017</option>
<option value = "018">018</option>
<option value = "019">019</option>
</select>
-
<input type="text" name ="phone2" size="4" maxlength="4">
-
<input type="text" name ="phone3" size="4" maxlength="4"><br>
<input type="submit" value="์ ์ก">
</form>
</body>
</html>
addMember.jsp
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%!
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String password = "tiger";
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
String id="", pw="", name="", p1="", p2="", p3="", sclass="";
id = request.getParameter("id");
pw = request.getParameter("pw");
name = request.getParameter("name");
sclass = request.getParameter("mclass");
p1 = request.getParameter("phone1");
p2 = request.getParameter("phone2");
p3 = request.getParameter("phone3");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
StringBuffer insertQuery = new StringBuffer();
insertQuery.append("INSERT INTO MEMBER2 VALUES('");
insertQuery.append(id+"','");
insertQuery.append(pw+"','");
insertQuery.append(name+"','");
insertQuery.append(sclass+"','");
insertQuery.append(p1+"-"+p2+"-"+p3+"')");
System.out.print(insertQuery.toString());
int re = stmt.executeUpdate(insertQuery.toString());
if(re == 1) {
%>
์ถ๊ฐ ์ฑ๊ณต
<br>
<a href="addForm.html">์ถ๊ฐ์์
</a>
<a href="viewMember.jsp">๊ฒ์์์
</a>
<%
} else {
%>
<font color="red">์ถ๊ฐ ์คํจ ใ
ใ
กใ
</font>
<%
}
} catch(SQLException ex) {
ex.getMessage();
%>
์๋ฒ๋ถ๋ ์ ์ ํ ๋ค์ ์๋
<%
} finally {
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
} catch(SQLException ex) {
ex.getMessage();
}
}
%>
</body>
</html>
๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋จ์ ํ์ธ ํ ์ ์์
๊ทผ๋ฐ ์์ ์ฝ๋๋ก๋ ํ๊ธ๋ก ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๊นจ์ง ์ ์์ผ๋ฏ๋ก UTF-8์ <% request.setCharacterEncoding("UTF-8"); %>
์ถ๊ฐ
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<%!
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String password = "tiger";
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String id="", pw="", name="", p1="", p2="", p3="", sclass="";
id = request.getParameter("id");
pw = request.getParameter("pw");
name = request.getParameter("name");
sclass = request.getParameter("mclass");
p1 = request.getParameter("phone1");
p2 = request.getParameter("phone2");
p3 = request.getParameter("phone3");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
StringBuffer insertQuery = new StringBuffer();
insertQuery.append("INSERT INTO MEMBER2 VALUES('");
insertQuery.append(id+"','");
insertQuery.append(pw+"','");
insertQuery.append(name+"','");
insertQuery.append(sclass+"','");
insertQuery.append(p1+"-"+p2+"-"+p3+"')");
System.out.print(insertQuery.toString());
int re = stmt.executeUpdate(insertQuery.toString());
if(re == 1) {
%>
์ถ๊ฐ ์ฑ๊ณต
<br>
<a href="addForm.html">์ถ๊ฐ์์
</a>
<a href="viewMember.jsp">๊ฒ์์์
</a>
<%
} else {
%>
<font color="red">์ถ๊ฐ ์คํจ ใ
ใ
กใ
</font>
<%
}
} catch(SQLException ex) {
ex.getMessage();
%>
์๋ฒ๋ถ๋ ์ ์ ํ ๋ค์ ์๋
<%
} finally {
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
} catch(SQLException ex) {
ex.getMessage();
}
}
%>
</body>
</html>
ddd,1,ํ๊ธธ๋,๊ต์๋.010-1111-2222 ์
๋ ฅ
MYSQL์ ๊ฒฝ์ฐ
addFormMySql.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="addMemberMySql.jsp">
์ ์ด ๋ : <input type="text" name="id" size="20"><br>
๋น๋ฐ๋ฒํธ : <input type="password" name="pw" size="20"><br>
ํ์์ด๋ฆ : <input type="text" name="name" size="20"><br>
ํ์๊ตฌ๋ถ : <input type="radio" name="mclass" value="1">์ผ๋ฐํ์
<input type="radio" name="mclass" value="2">๊ต์๋<br>
์ ํ๋ฒํธ : <select name="phone1">
<option value="010">010</option>
<option value="011">011</option>
<option value="016">016</option>
<option value="017" selected>017</option>
<option value="018">018</option>
<option value="019">019</option>
</select>
-
<input type="text" name="phone2" size="4" maxlength="4">
-
<input type="text" name="phone3" size="4" maxlength="4"><br>
<input type="submit" value="์ ์ก">
</form>
</body>
</html>
addMemberMySql.jsp
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<%!
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/jspdb";
String user = "root";
String password = "1234";
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String id="", pw="", name="", p1="", p2="", p3="", sclass="";
id = request.getParameter("id");
pw = request.getParameter("pw");
name = request.getParameter("name");
sclass = request.getParameter("mclass");
p1 = request.getParameter("phone1");
p2 = request.getParameter("phone2");
p3 = request.getParameter("phone3");
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
stmt = con.createStatement();
StringBuffer insertQuery = new StringBuffer();
insertQuery.append("INSERT INTO MEMBER2 VALUES('");
insertQuery.append(id+"','");
insertQuery.append(pw+"','");
insertQuery.append(name+"','");
insertQuery.append(sclass+"','");
insertQuery.append(p1+"-"+p2+"-"+p3+"')");
System.out.print(insertQuery.toString());
int re = stmt.executeUpdate(insertQuery.toString());
if(re == 1) {
%>
์ถ๊ฐ ์ฑ๊ณต
<br>
<a href="addFormMySql.html">์ถ๊ฐ์์
</a>
<a href="viewMemberMySql.jsp">๊ฒ์์์
</a>
<%
} else {
%>
<font color="red">์ถ๊ฐ ์คํจ ใ
ใ
กใ
</font>
<%
}
} catch(SQLException ex) {
ex.getMessage();
%>
์๋ฒ๋ถ๋ ์ ์ ํ ๋ค์ ์๋
<%
} finally {
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();
} catch(SQLException ex) {
ex.getMessage();
}
}
%>
</body>
</html>
JDBC๋ณด๋ค ํผํฌ๋จผ์ค์ ์ผ๋ก ์ฑ๋ฅ์ด ์ข์
TOMCAT์ server.xml์ ์ถ๊ฐ (Contextํ๊ทธ ์์ ์ฝ์
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/oracle" password="tiger" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:xe" username="scott"/>
๊ทธ ํ
dbConn.jsp ์์ฑ
<%@page import="javax.naming.Context"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="java.sql.SQLException"%>
<%@page import="javax.naming.NamingException"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%!
Connection conn = null;
DataSource ds = null;
%>
<%
try{
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracle");//์บ์คํ
conn = ds.getConnection();
System.out.println("DBCP ์ฐ๋ ์ฑ๊ณต");
}catch(NamingException ne){
ne.printStackTrace();
}catch(SQLException ex) {
out.print("๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ์คํจํ์ต๋๋ค.<br>");
out.print("SQLException : "+ex.getMessage());
} finally {
try{
}catch(Exception e){
e.printStackTrace();
}
if(conn != null) {
conn.close();
}
}
%>
</body>
</html>
๊ทธ ํ ์คํ
viewMember.jsp (chapter 14)
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%!
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String password = "tiger";
String selectQuery = "SELECT * FROM MEMBER2";
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<table width="400" border="1">
<tr>
<td>์์ด๋</td>
<td>์ด๋ฆ</td>
<td>๋ฑ๊ธ</td>
<td>์ ํ๋ฒํธ</td>
</tr>
<%
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
rs = stmt.executeQuery(selectQuery); //์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ rs๋ก ๋ฐ์
while(rs.next()) {
%>
<tr>
<%-- <td><%= rs.getString("id") %></td> --%>
<td>
<a href = "updateMember.jsp?id = <%= rs.getString("id") %>">
<%= rs.getString("id") %>
</a>
</td>
<td>
<%= rs.getString("name") %>
</td>
<%-- <td><%= rs.getInt("class") %></td> ์ฃผ์ : Ctrl+Shift+/ --%>
<td>
<%
int n_class = rs.getInt("class");
if(n_class == 1) {
out.print("์ผ๋ฐํ์");
} else {
out.print("๊ต์๋");
}
%>
</td>
<td><%= rs.getString("tel") %></td>
</tr>
<%
}
} catch(SQLException ex) {
ex.getMessage();
} finally {
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
} catch(SQLException ex) {
ex.getMessage();
}
}
%>
</table>
</body>
</html>
(๊ธ์์ผ์ ์ด์ด์ ๋ค์ํ๋ ๊ธ์์ผ ํฌ์คํฐ ์ฐธ๊ณ )