데이터베이스에서의 의미
여러 곳의 값을 같게 만드는 것
(UI와 DB의 내용을 같게 만드는 등)
언어에서의 의미
작업의 순서가 하나로 이어지는 것(?)
'낙서장' 카테고리의 다른 글
쿠키런 피피티 깃헙 (0) | 2020.05.21 |
---|---|
md 파일 작성하는 법 (0) | 2020.05.21 |
200513 (0) | 2020.05.13 |
괜찮은 출판사, 책 (0) | 2020.05.11 |
프로젝트 제작시 폴더 구분 (0) | 2020.04.28 |
데이터베이스에서의 의미
여러 곳의 값을 같게 만드는 것
(UI와 DB의 내용을 같게 만드는 등)
언어에서의 의미
작업의 순서가 하나로 이어지는 것(?)
쿠키런 피피티 깃헙 (0) | 2020.05.21 |
---|---|
md 파일 작성하는 법 (0) | 2020.05.21 |
200513 (0) | 2020.05.13 |
괜찮은 출판사, 책 (0) | 2020.05.11 |
프로젝트 제작시 폴더 구분 (0) | 2020.04.28 |
GUI방식으로 생성하는 방법
인덱스 생성 , 인덱스 재생성 (0) | 2020.05.20 |
---|---|
자바 오라클 외부에서 내부 아이피 접속하기 (0) | 2020.05.17 |
오라클 CHECK 체크 의미 (1) | 2020.05.15 |
오라클 시퀀스 권한주기 (0) | 2020.05.15 |
데이터베이스의 내용을 Json으로 변경하여 웹에 띄우기 (0) | 2020.05.14 |
롬복을 설치한 후
아래와 같은 생성자로 new를 하려면 값의 순서가 햇갈릴 수가 있다.
이런걸 방지하기위한 방법 중 하나가 빌더 패턴이다.
메인 프레임에서 데이터를 넣는 부분을 아래와 같이 만들어보자.
아래와 같이 잘 나온다.
모든 경우의 수의 생성자를 사용할 수 있다.
즉, 생성자에 필요한 데이터를 몇가지 빼먹어도 인스턴스가 생성된다
* 다만 기본생성자가 필요하다면 그것은 직접 만들어 줘야한다
빌더패턴에 대해 더 알아보기
필수인자를 세팅하는법.
자바 서비스 트랜잭션 (0) | 2020.05.15 |
---|---|
자바 데이터베이스 모델과 DAO의 원칙 (0) | 2020.05.15 |
자바 주소록 만들기 (프로토타입) (0) | 2020.05.08 |
자바 스윙 카드 레이아웃 요점 (프로젝트 진행) (0) | 2020.05.06 |
자바 스윙 쿠키런 만들기 paintComponent 설정 (프로젝트 진행) (9) | 2020.05.06 |
자바 오라클 외부에서 내부 아이피 접속하기 (0) | 2020.05.17 |
---|---|
오라클 디벨로퍼 시퀀스 생성 (0) | 2020.05.15 |
오라클 시퀀스 권한주기 (0) | 2020.05.15 |
데이터베이스의 내용을 Json으로 변경하여 웹에 띄우기 (0) | 2020.05.14 |
200512 (0) | 2020.05.12 |
오라클 디벨로퍼 시퀀스 생성 (0) | 2020.05.15 |
---|---|
오라클 CHECK 체크 의미 (1) | 2020.05.15 |
데이터베이스의 내용을 Json으로 변경하여 웹에 띄우기 (0) | 2020.05.14 |
200512 (0) | 2020.05.12 |
200507 (0) | 2020.05.07 |
먼저 DB에 테이블을 만들고 내용을 넣자
자바에 파일을 먼저 만들어주자
내용
package db.beans;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {
public static Connection getConnection() throws Exception {
System.out.println("DB연결시도");
Class.forName("oracle.jdbc.driver.OracleDriver");
return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "c##madang", "c##madang");
}
public static Connection getConnection(String ip, int port, String db, String user, String pw) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
return DriverManager.getConnection("jdbc:oracle:thin:@" +ip+ ":" +port+ ":" + db, user, pw);
}
}
package db.beans;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
public class QueryBean {
Connection conn;
Statement stmt;
ResultSet rs;
public QueryBean() {
conn = null;
stmt = null;
rs = null;
}
public void getConnection() {
try {
conn = DBConnection.getConnection();
} catch (Exception e) {
// TODO: handle exception
}
try {
stmt = conn.createStatement();
} catch (Exception e) {
// TODO: handle exception
}
}
public void closeConnection() {
if(stmt != null) {
try {
stmt.close();
} catch (Exception e) {
// TODO: handle exception
}
}
if(conn != null) {
try {
conn.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
public ArrayList<String> getUserInfo() throws Exception{ // 꺽쇠
StringBuffer sb = new StringBuffer();
sb.append(" SELECT ");
sb.append(" U_ID, U_NAME, U_PHONE, U_GRADE, WRITE_TIME ");
sb.append(" FROM ");
sb.append(" USER_INFO_SAMPLE ");
sb.append(" ORDER BY ");
sb.append(" WRITE_TIME ");
rs = stmt.executeQuery(sb.toString());
ArrayList<String> res = new ArrayList<>();
while (rs.next()) {
res.add(rs.getString(1));
res.add(rs.getString(2));
res.add(rs.getString(3));
res.add(rs.getString(4));
res.add(rs.getString(5));
}
System.out.println(sb.toString());
return res;
}
}
<%@page import="java.util.ArrayList"%>
<%@page import="db.beans.QueryBean"%>
<%@ page contentType="text/html; charset=EUC-KR" pageEncoding = "EUC-KR" %>
<jsp:useBean id = "QueryBean" scope="page" class= "db.beans.QueryBean" />
<jsp:setProperty name = "QueryBean" property = "*"/>
<%
response.setHeader("Cache-Control" , "no-store");
response.setHeader("Pragma" , "no-cache");
response.setDateHeader("Expires" , 0);
request.setCharacterEncoding("UTF-8");
QueryBean.getConnection();
ArrayList<String> resArr = new ArrayList<>();
try
{
resArr = QueryBean.getUserInfo();
}
catch(Exception e )
{
out.print(e.toString());
}
finally
{
QueryBean.closeConnection();
}
out.println("{");
out.println("\"datas\":[");
if(resArr.size() == 0)
{
out.println("]");
out.println("}");
}else
{
out.print("{");
out.print("\"ID\":\"" + (String)resArr.get(0) + "\", ");
out.print("\"NAME\":\"" + (String)resArr.get(1) + "\", ");
out.print("\"PHONE\":\"" + (String)resArr.get(2) + "\", ");
out.print("\"GRADE\":\"" + (String)resArr.get(3) + "\", ");
out.print("\"WRITE_TIME\":\"" + (String)resArr.get(4) + "\"");
out.print("} ");
for(int i =5; i <resArr.size(); i+=5)
{
out.print(",");
out.print("{");
out.print(" \"ID\": \"" + (String)resArr.get(i) + "\" ,");
out.print(" \"NAME\": \"" + (String)resArr.get(i+1) + "\" ,");
out.print(" \"PHONE\": \"" + (String)resArr.get(i+2) + "\" ,");
out.print(" \"GRADE\": \"" + (String)resArr.get(i+3) + "\" ,");
out.print(" \"WRITE_TIME\": \"" + (String)resArr.get(i+4) + "\"");
out.print("}");
}
out.print("]");
out.print("}");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
결과
오라클 CHECK 체크 의미 (1) | 2020.05.15 |
---|---|
오라클 시퀀스 권한주기 (0) | 2020.05.15 |
200512 (0) | 2020.05.12 |
200507 (0) | 2020.05.07 |
200506 (0) | 2020.05.06 |
SQL에서
리턴값이 있는 함수를 Function이라고하고
리턴값이 없는 함수를 Procedure라고 한다
자바에서는 함수에 매개변수가 들어가는 것이 in 리턴받는 값을 out이라고 생각할 수 있는데
SQL에서의 함수와 프로시저의 in / out / in out은 약간 다른개념이다.
매개변수로 들어갈 시 모드를 이야기 한다.
매개변수를 넣을 때 레퍼런스를 넣어 리턴하지 않고 매개변수에 빈 객체를 보내서 주소값을 채워넣는 것을 말한다.
그렇게 하면 반환받지 않고도 주소가 생성된 객체 - 즉 인스턴스? 를 이용할 수 있게 되는 것.
md 파일 작성하는 법 (0) | 2020.05.21 |
---|---|
동기화의 의미 (0) | 2020.05.15 |
괜찮은 출판사, 책 (0) | 2020.05.11 |
프로젝트 제작시 폴더 구분 (0) | 2020.04.28 |
자바 네이버 지도 api 사용하기 (프로젝트 대비) (0) | 2020.04.27 |
TYPE변수를 이용하여 데이터 초기화 하기
CREATE TABLE pl_emp3
as
SELECT empno, ename, sal
FROM emp;
먼저 연습을 위해 다른테이블을 복사한다
SET serveroutput ON;
출력을 위해 위 코드를 실행
DECLARE
vno pl_emp3.empno%TYPE;
vname pl_emp3.ename%TYPE;
vsal pl_emp3.sal%TYPE;
BEGIN
SELECT empno, ename, sal INTO vno, vname, vsal
FROM pl_emp3
WHERE empno = 7369;
DBMS_OUTPUT.PUT_LINE(vno||'---'||vname||'---'||vsal);
END;
/
변수를 선언하고 나온 값들을 변수에 넣고 출력한다.
위의 코드를 ROWTYPE방식으로 만들어본다
SET serveroutput ON
DECLARE
vrow pl_emp3%ROWTYPE;
BEGIN
SELECT * INTO vrow
FROM pl_emp3
WHERE empno = 7369;
DBMS_OUTPUT.PUT_LINE(vrow.empno);
END;
/EMP
오라클 반복문 참고
https://coding-factory.tistory.com/452
오라클에서 커서란
sql문을 실행할 때마다 처리를 위한 메모리를 사용하는데 그것을 커서라고함
(ResultSet이 튜플을 가리키는 커서이듯)
묵시적커서 - 오라클에서 자동으로 만들어지는 변수?
명시적커서 - 사용자가 직접 만들고 관리 사용하는 변수?
오라클 시퀀스 권한주기 (0) | 2020.05.15 |
---|---|
데이터베이스의 내용을 Json으로 변경하여 웹에 띄우기 (0) | 2020.05.14 |
200507 (0) | 2020.05.07 |
200506 (0) | 2020.05.06 |
데이터베이스 ALL, SOME (0) | 2020.05.06 |