기초/DB2015. 5. 6. 12:42

1. 게시판에 그림을 ppt로 만든다

이 파일을 png로 저장하여 , 위아래 로 자른다



Posted by ICT 기술 블로그
기초/DB2015. 4. 28. 11:22
create database jspdb; /*사용할 db를 만든다*/

create user testuser identified by '1234';  /*사용자를 만듬*/

grant all on jspdb.* to 'testuser'@'%' identified by '1234';   /*권한설정*/



/*만들어진 user로 로그인 해본다

그리고 테이블을 만든다*/



/*테이블 만들기*/

CREATE TABLE `jspdb`.`member` (
  `id` VARCHAR(20) NOT NULL,
  `passwd` VARCHAR(45) NOT NULL,
  `name` VARCHAR(45) NOT NULL,
  `reg_date` TIMESTAMP NOT NULL,
  `address` VARCHAR(100) NOT NULL,
  `tel` VARCHAR(15) NOT NULL,
  PRIMARY KEY (`id`));



/*데이터 넣기*/

insert into member values('member01','1234','테스터',CURRENT_TIMESTAMP,'부산','010-1234-5678');



http://commons.apache.org/components.html 가서  필요한

commons-collections4-4.0.jar

commons-dbcp2-2.1.jar

commons-pool2-2.3.jar



다운받아서 WEB-INF/lib에다 넣어준다




아파치 사이트로 가서 server.xml에 넣은 내용을 참조한다

http://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example


server.xml로 가서

Context 안에

 <Context docBase="studyjsp" path="/studyjsp" reloadable="true" source="org.eclipse.jst.jee.server:studyjsp">
       <Resource name="jdbc/jspdb"
                auth="Container"
                type="javax.sql.DataSource"
                maxTotal="100"
                maxIdle="30"
                maxWaitMillis="10000"
                username="testuser"
                password="1234"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost:3306/jspdb" />
                <!-- name 사용자가 만든이름
                      user의 마지막 이름은 진짜 db이름을 적어 주어야 한다 -->

              </Context>


넣어준다


그다음 GlobalNamingResources 안에 넣어준다


<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
     <Resource name="jdbc/jspdb"
                auth="Container"
                type="javax.sql.DataSource"
                maxTotal="100"
                maxIdle="30"
                maxWaitMillis="10000"
                username="testuser"
                password="1234"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost:3306/jspdb" />
                <!-- name 사용자가 만든이름
                      user의 마지막 이름은 진짜 db이름을 적어 주어야 한다 -->

  </GlobalNamingResources>




Web-INF 폴더 web.xml 에 넣어준다

없으면 다른 프로젝트에 기본값 web.xml을 복사해온다


 <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/jspdb</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>


그다음 내용을 web.xml에 넣어준다



==============================================================================================================

확인 소스=====================================================================================================

==============================================================================================================




위치 : Java Resourcs

파일이름 : LogonDBBean.java




package ch10.logon;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;


public class LogonDBBean {
    private static LogonDBBean instance = new LogonDBBean();
    public static LogonDBBean getInstance(){
        return instance;
    }
   
    private LogonDBBean(){
       
    }
   
    private Connection getConnection() throws Exception{
        Context iniCtx = new InitialContext();
        Context envCtv = (Context)iniCtx.lookup("java:comp/env");
        DataSource ds = (DataSource)envCtv.lookup("jdbc/jspdb");
        return (Connection)ds.getConnection();
    }
   
    public int userCheck(String id, String passwd)
    {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        int x=-1;
        String sql = "select passwd from member where id=?";
        try
        {
            conn = getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, id);
            rs = pstmt.executeQuery();
           
            if(rs.next())
            {
                String dbpasswd = rs.getString("passwd");
                if(dbpasswd.equals(passwd)){
                    x=1;    //인증성공
                }
                else
                {
                    x=0;    //비밀번호 틀림
                }
            }
            else
            {
                x=-1;        //아이디가 없음;
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
           
            try {
                if(rs!=null)
                {
                    rs.close();
                }
   
                if(pstmt!=null)
                {
                    rs.close();
                }
                if(conn!=null)
                {
                    conn.close();
                }
            }
            catch (SQLException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return x;
    }

}


====================================================================================================================



위치 : WebContent

파일이름 : sessionLogin.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    try{
        String id="";
        id = (String)session.getAttribute("id");
        if((id==null)|| id.equals(""))
        {
%>           
            <form method="post" action="sessionLoginPro.jsp">
                <table>
                <tr>
                    <td>아이디</td>
                    <td><input type="text" name="id"></td>
                </tr>
                <tr>
                    <td>패스워드</td>
                    <td><input type="text" name="passwd"></td>
                </tr>
                <tr>
                    <td colspan=2>
                        <input type="submit" value="Login">
                        <input type="reset" value="reset">
                    </td>
                </tr>
                </table>
           
            </form>
           
<%
        }
        else
        {
%>
            <b><%=id%> 님  로그인 하셨습니다.
            <form method="post" action="sessionLogout.jsp">
                <input type="submit" value="로그아웃">
            </form>   
<%
        }
    }       
    catch(Exception e)
    {
        e.printStackTrace();   
    }
       
   

%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>


================================================================================================================


위치 : WebContent

파일이름 : sessionLoginPro.jsp




<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@
    page import="ch10.logon.LogonDBBean"%>
<% request.setCharacterEncoding("utf-8"); %>
<%
    String id=request.getParameter("id");
    String passwd = request.getParameter("passwd");
   
    LogonDBBean logon = LogonDBBean.getInstance();
    int check = logon.userCheck(id, passwd);
    if(check==1)
    {
        session.setAttribute("id", id);
        response.sendRedirect("sessionLogin.jsp");
    }
    else if(check==0)
    {
%>   
        <script type="text/javascript">
            alert("비밀번호가 다릅니다.");
            history.go(-1);
        </script>
<%   
    }
    else
    {
%>       

        <script type="text/javascript">
        alert("아이디가 틀립니다");
        history.go(-1);
        </script>       
<%    }
%>   

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>


================================================================================================================


위치 : WebContent

파일이름 : sessionLogout.jsp




<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
    session.invalidate();//세션 무효화
%>
<script type="text/javascript">
    alert("로그아웃되었습니다");
    location.href="sessionLogin.jsp";
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>








Posted by ICT 기술 블로그
기초/DB2015. 4. 22. 11:14

get방식으로 전송하여 리 다이렉트 할 때 다시 엔코딩을 해주어야 한다

선언에

<%@page import="java.net.URLEncoder" --%>

선언하고

본문에서

String enName = URLEncoder.encode(name,"UTF-8");

(예를 들어서 name이 넘어오면 다시 엔코딩하여 전송한다)




만약 post방식으로 넘어온다면 Redirect 시에는 다시 엔코딩할 필요가 없다.

Posted by ICT 기술 블로그
기초/DB2015. 4. 20. 11:41

select dbms_xdb.gethttpport()
from dual;

begin dbms_xdb.sethttpport('8090');
end;

Posted by ICT 기술 블로그
기초/DB2011. 9. 6. 12:00

다른사용자가 해당 태이블을 이용할 수 없을 경으므로 lock이 발생할 수 있기 때문

 

컬럼을 삭제시는

미리

alter table [테이블명]

set unused([컬럼명]);

 

으로 변경 후 삭제

 

alter table em05

drop unused columns;

'기초 > DB' 카테고리의 다른 글

get방식으로 전송  (0) 2015.04.22
oracle http 포트변경  (0) 2015.04.20
기존 테이블 구조/데이터가 복사하여 새로운 테이블 만들기  (0) 2011.09.06
IN 연산자  (0) 2011.09.05
각 명령어  (0) 2011.05.26
Posted by ICT 기술 블로그
기초/DB2011. 9. 6. 11:54

create table em02

as select * from [테이블명];

 

 

 

'기초 > DB' 카테고리의 다른 글

oracle http 포트변경  (0) 2015.04.20
컬럼삭제시 주의사항  (0) 2011.09.06
IN 연산자  (0) 2011.09.05
각 명령어  (0) 2011.05.26
Oracle 계정에 Lock이 걸렸을 경우  (0) 2011.05.25
Posted by ICT 기술 블로그
기초/DB2011. 9. 5. 10:24

IN 연산자

 

where comm=300 or comm=500 or comm=1400

 

where comm in(300, 500, 1400) (속도증가)

'기초 > DB' 카테고리의 다른 글

컬럼삭제시 주의사항  (0) 2011.09.06
기존 테이블 구조/데이터가 복사하여 새로운 테이블 만들기  (0) 2011.09.06
각 명령어  (0) 2011.05.26
Oracle 계정에 Lock이 걸렸을 경우  (0) 2011.05.25
간단한 DB 상식  (0) 2011.05.25
Posted by ICT 기술 블로그
기초/DB2011. 5. 26. 17:07

oracle  : sysdate

mssql : getDate();

my-sql : now();


oracle : sequence

mssql : identity

my-sql : auto_increament



'기초 > DB' 카테고리의 다른 글

기존 테이블 구조/데이터가 복사하여 새로운 테이블 만들기  (0) 2011.09.06
IN 연산자  (0) 2011.09.05
Oracle 계정에 Lock이 걸렸을 경우  (0) 2011.05.25
간단한 DB 상식  (0) 2011.05.25
DB insert시 주의사항  (0) 2011.05.23
Posted by ICT 기술 블로그
기초/DB2011. 5. 25. 15:04

1. 계정에 Lock이 걸렸을 경우 

Oracle – OraClient10g_home1 >> Oracle Enterprise Manager Console 실행


2. 잠긴계정보다 상위 계정으로 로그인


3. 잠긴 계정 확인


4. 보안 >> 사용자에서 잠긴 계정에 대해 잠근 해제 클릭


5. 잠금 해제 확인

'기초 > DB' 카테고리의 다른 글

IN 연산자  (0) 2011.09.05
각 명령어  (0) 2011.05.26
간단한 DB 상식  (0) 2011.05.25
DB insert시 주의사항  (0) 2011.05.23
virtual  (0) 2011.05.18
Posted by ICT 기술 블로그
기초/DB2011. 5. 25. 14:03

Delete

Drop

DML

DDL

수동커밋

자동커밋


다음중 틀린 것은?  2번  Delete자체가 행(colomn)을 지우는 것이기 때문에   *는 못씀

1. Delete emp

2. Delete * emp  

3. Delete [from] emp

4. delete from emp where deptno=10



트랜잭션 4가지 동작

DB처리속도

자원의 성능

PL-SQL 커넥션

처리

- finally절에서 db.close();한다

 

 

원자성 : 넣으려면 완전히 다 넣어야 아니면 롤백

격리성 : 작업도중 다른 작업이 들어 올 수 없음




'기초 > DB' 카테고리의 다른 글

각 명령어  (0) 2011.05.26
Oracle 계정에 Lock이 걸렸을 경우  (0) 2011.05.25
DB insert시 주의사항  (0) 2011.05.23
virtual  (0) 2011.05.18
오라클 구조 및 오라클 삭제 방법  (0) 2011.05.16
Posted by ICT 기술 블로그