1. Oracle Connection Test
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Oracle Connection Test</title>
</head>
<body>
<%@ page import="java.sql.*" %>
<h2> 데이타베이스 드라이버와 DB Oracle 연결 점검 프로그램 </h2>
<%
try{
String driverName="oracle.jdbc.driver.OracleDriver";
String dbURL = "jdbc:oracle:thin:@localhost:1521:XE";
Class.forName(driverName);
Connection conn = DriverManager.getConnection(dbURL,"scott","tiger");
out.println("Oracle Database 에 접속 했습니다.");
conn.close();
}catch(Exception e){
out.println("Oracle Database 에 접속에 문제가 발생 했습니다.");
out.println(e.getMessage());
e.printStackTrace();
}
%>
<hr size = "5" color ="red">
</body>
</html>
2. dbConnection_2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
Connection conn = null;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
Boolean connect = false;
try{
Class.forName(driver);
conn = DriverManager.getConnection(url,"scott", "tiger");
connect = true;
conn.close();
}catch(Exception e){
connect=false;
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JDBC Oracle 연동 테스트</title>
</head>
<body>
<h2> Oracle Database 연동 테스트 </h2>
<hr size="5" color="red">
<%
if(connect == true){
%>
<h3> 연결 되었습니다. </h3>
<%
}else{
%>
<h3> 연결에 실패 하였습니다. </h3>
<%} %>
<hr size="5" color="green">
</body>
</html>
3. 미리 연결을 만들어 그것을 계속 쓰는 Connection Full을 이용하는 방법
Full Connection 설정하여 JSP에서 SQL로 연결하는 .XML 문서를 작성하여 JSP에서 테이터 베이스 연결할때 저장된 Full Connection만 불러오면 됩니다.
설정 방법은
C:\aajsp_17\apache-tomcat-8.5.11\lib 폴더 안에
tomcat-dbcp.jar 파일을
C:\java_2017\java\jdk1.8\jre\lib\ext 에 붙여 넣고
C:\java_2017\java\jre1.8\lib\ext 에도 붙여 넣습니다
이클립스에서 Server 에 context.xml 을 삭제 한후 firstjsp > WebContent > META-INF > context.xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<context>
<Resource
name="jdbc/OracleDB"
auth="Container"
type="javax.sql.DataSource"
username="scott"
password="tiger"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="oracle.jdbc.OracleDriver"
url = "jdbc:oracle:thin:@127.0.0.1:1521:xe"
maxActive="500"
maxIdle="100"
validationQuery = "select 1 from dual"
testOnBorron="false"
poolPreparedStatements="true" />
</context>
context.xml로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
Connection conn = null;
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
out.println("<h3>연결에 성공하였습니다.</h3>");
}catch(SQLException e){
out.println("<h3>연결에 실패하였습니다.</h3>");
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Connection Pool Test</title>
</head>
<body>
</body>
</html>
</body>
</html>
: Statement and PreparedStatement
. Statement란 실제 데이타베이스에 쿼리를 보내기위한 객체 입니다.
삽입, 수정, 삭제, 검색을 처리하는 DML 문을 사용할 때는 이 인터페이스를
사용합니다.
이 객체는 Connection 객체의 연결 정보를 가져와서 DB 에 접근 하므로
이 객체를 사용하기 위해서는 접속상태인 Connection 객체가 먼저 존재해야 합니다.
메소드 의미
executeQuery(String sql) SELECT 문을 실행할때 사용한다
(ResultSet 객체 반환)
excuteUpdate(String sql) 삽입, 수정, 삭제와 관련된 sql 문 실행에 사용한다.
적용된 행의 수를 int 로 반환한다.
close() Statement 객체를 반환할때 사용한다.
4. statementTest
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
String sql = "INSERT INTO student_1 VALUES(33,'수선화')";
try{
Context init = new InitialContext();
// 가장 먼저 InitialContext(); 객체가 필요 하므로 객체를 하나 생성한다.
// 클래스 javax.naming.InitialContext 는 JNDI 서비스를 하기위해
// 객체 InitialContext를 생성하기 위한 클리스이며 객체 InitialContext가
// 생성 되면 이미 저장한 DBCP 를 위한 리소스를 참조 하게 된다.
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
// InitialContext 객체 변수 init 의 메소드 lookup() 을 이용해
// DataSource 객체를 찾는 일이다. 인터페이스
// jacax.sql.DataSource 는 커넥션풀을 위해 만든
// 인터페이스로 DBMS 커넥션풀을 구현한 객체를 표현한다.
// 즉 톰캣의 JNDI 설정에서 "jdbc/OracleDB" 이름으로
// 커넥션 풀을 위한 객체를 찾아 DataSourde 객체 변수 ds 에 저장한다.
conn = ds.getConnection();
// 마지막으로 DataSource 객체의 메소드 getConnection() 을 호출하여
// Connection 객체 conn 을 얻는다.
Statement stmt = conn.createStatement();
int result = stmt.executeUpdate(sql);
if(result !=0){
out.println("<h3> 레코드가 등록되었습니다.</h3>");
}
}catch(Exception e){
e.printStackTrace();
out.println("<h3> 레코드 등록에 실패하였습니다.</h3>");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
5. prepareStatementTest
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
String sql ="INSERT INTO student_1 VALUES(?,'들국화')";
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
for(int k = 55; k < 65; k++)
{
pstmt.setInt(1, k);
if(pstmt.executeUpdate()!= 0)
{
out.println("<h3>" + k +" 번 레코드를 등록하였습니다. </h3>");
}
}
}catch(Exception e)
{
e.printStackTrace();
out.println("<h3> 레코드 등록에 실패 하였습니다.</h3>");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
6. resultSetTest_1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
String sql = "SELECT * FROM student_1 order by num desc";
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rss = pstmt.executeQuery();
while(rss.next())
{
out.println("<h3>" +rss.getInt(1)+", "+rss.getString(2)+"<h3>");
}
rss.close();
pstmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
out.println("<h3>+데이타를 가져오지 못하였습니다. </h3>");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
7. resultSetCusor
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
String sql = "SELECT * FROM student_1";
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rss = pstmt.executeQuery();
rss.last();
out.println(rss.getInt(1)+" , "+rss.getString(2)+"<br>");
rss.first();
out.println(rss.getInt(1)+" , "+rss.getString(2)+"<br>");
rss.absolute(3);
out.println(rss.getInt(1)+" , "+rss.getString(2)+"<br>");
}catch(Exception e)
{
e.printStackTrace();
out.println("<h3> 데이타를 불러오지 못하였습니다. </h3>");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
8. transactionTest
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rss = null;
String sql1 = "INSERT INTO student_1 VALUES(777, '해바라기')";
String sql2 = "SELECT * FROM student_1 WHERE num = 55";
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(sql1);
pstmt.executeUpdate();
pstmt.close();
pstmt = conn.prepareStatement(sql2);
rss = pstmt.executeQuery();
if(!rss.next())
{
conn.rollback();
out.println("<h3> 데이타삽입에 문제가 발생하여 롤백 하였습니다.</h3>");
}
else{
conn.commit();
out.println("<h3> 데이타삽입을 모두 완료 하였습니다.</h3>");
}
pstmt.close();
conn.setAutoCommit(true);
} catch(Exception e)
{
e.printStackTrace();
out.println("<h3> 데이타삽입에 실패하였습니다.</h3>");
}
%>
9. resultSetMataData
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
String sql = "SELECT * FROM emp";
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rss = pstmt.executeQuery();
ResultSetMetaData rsmd = rss.getMetaData();
out.println(" 컬럼수 : "+rsmd.getColumnCount()+"<br>");
for(int i = 1; i <=rsmd.getColumnCount();i++)
{
out.println(i+" 번째 컬럼 이름 : "+rsmd.getColumnName(i)+" , ");
out.println(i+" 번째 타입 이름 : "+rsmd.getColumnTypeName(i)+"<br>");
}
}catch(Exception e){
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
'JSP(Java Server Pages)' 카테고리의 다른 글
12. Java Beans, 회원관리 시스템, 로그인 및 관리자 시스템 (0) | 2017.02.24 |
---|---|
11. Java Beans StudentDataBase 를 이용한 테이블 STUDENT 조회 프로그램 (0) | 2017.02.23 |
9. <JSP> 데이터베이스 연동, Insert, Select, Update, Delete (0) | 2017.02.21 |
8. 파일업로드폼(FileUploadForm), 썸네일폼(thumbnailform) (0) | 2017.02.20 |
7. template test, bean test, 회원가입 폼 (0) | 2017.02.17 |