<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"/>
<title>Group Check</title>
<SCRIPT type="text/javascript">
function chkOne(obj)
{
   var chkBox = obj.form.elements['chkGroup'];
   var chkLen = chkBox.length;

 var chkNum = 0;
 for (var i=0; i < chkLen; i++)
 {
  if(chkBox[i].checked) chkNum++;
 }

 if(chkNum<1)
 {
  alert('체크해~~~');
 }
}
</SCRIPT>
</head>

<body>

<form name="ContentListForm" onSubmit="return formCheck(this)">
<table>
   <tr>
      <th><input type="CHECKBOX" name="chkGroup" value="1050"/></th>
      <td>test....</td>
   </tr>
   <tr>
      <th><input type="CHECKBOX" name="chkGroup" value="1050"/></th>
      <td>test....</td>
   </tr>
   <tr>
      <th><input type="CHECKBOX" name="chkGroup" value="1050"/></th>
      <td>test....</td>
   </tr>
</table>
<input type="button" value="입력이야. 박스체크해.." onClick="chkOne(this)"/>
</form>

</body>
</html>

Posted by 말없제이
,

JDBC연동하기.

DevTool/Java 2009. 6. 29. 18:13
프로젝트 선택후 특성 > 빌드경로 > 라이브러리 탭 > 외부 JAR추가.
사용자 삽입 이미지

오라클 설치된 경로..
사용자 삽입 이미지

ojdbc14.jar 선택.
사용자 삽입 이미지
eclipse 재부팅후 확인하면..
사용자 삽입 이미지


연동 설치확인. Oracle. 뒤에 나오면. OK
사용자 삽입 이미지
Posted by 말없제이
,

package ch22;

public class AdminBean
{
 private String id;
 private String name;
 private String email;
 private String pwd;
 /**
  * @return email
  */
 public String getEmail()
 {
  return email;
 }
 /**
  * @param email 설정하려는 email
  */
 public void setEmail(String email)
 {
  this.email = email;
 }
 /**
  * @return id
  */
 public String getId()
 {
  return id;
 }
 /**
  * @param id 설정하려는 id
  */
 public void setId(String id)
 {
  this.id = id;
 }
 /**
  * @return name
  */
 public String getName()
 {
  return name;
 }
 /**
  * @param name 설정하려는 name
  */
 public void setName(String name)
 {
  this.name = name;
 }
 /**
  * @return pwd
  */
 public String getPwd()
 {
  return pwd;
 }
 /**
  * @param pwd 설정하려는 pwd
  */
 public void setPwd(String pwd)
 {
  this.pwd = pwd;
 }
 
 
}

Posted by 말없제이
,

JDBC관련 모듈화

DevTool/Java 2009. 6. 29. 18:06

package ch22;

import java.awt.BorderLayout;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.sql.*;

public class Ch2205 extends JFrame
{
 //재사용 가능하게 모듈처리.
 
 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JLabel jLabel = null;

 private JTextField txtID = null;

 private JLabel jLabel1 = null;

 private JTextField txtName = null;

 private JTextField txtEmail = null;

 private JTextField txtPwd = null;

 private JLabel jLabel2 = null;

 private JLabel jLabel21 = null;

 private JButton btnAdd = null;

 /**
  * This is the default constructor
  */
 public Ch2205()
 {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane()
 {
  if (jContentPane == null)
  {
   jLabel21 = new JLabel();
   jLabel21.setBounds(new Rectangle(30, 110, 61, 21));
   jLabel21.setText("비밀번호");
   jLabel2 = new JLabel();
   jLabel2.setBounds(new Rectangle(30, 80, 41, 21));
   jLabel2.setText("이메일");
   jLabel1 = new JLabel();
   jLabel1.setBounds(new Rectangle(30, 50, 41, 21));
   jLabel1.setText("이름");
   jLabel = new JLabel();
   jLabel.setBounds(new Rectangle(29, 19, 42, 22));
   jLabel.setText("ID");
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.add(jLabel, null);
   jContentPane.add(getTxtID(), null);
   jContentPane.add(jLabel1, null);
   jContentPane.add(getTxtName(), null);
   jContentPane.add(jLabel2, null);
   jContentPane.add(getTxtEmail(), null);
   jContentPane.add(jLabel21, null);
   jContentPane.add(getTxtPwd(), null);
   jContentPane.add(getBtnAdd(), null);
  }
  return jContentPane;
 }

 /**
  * This method initializes txtID
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtID()
 {
  if (txtID == null)
  {
   txtID = new JTextField();
   txtID.setBounds(new Rectangle(80, 20, 161, 22));
  }
  return txtID;
 }

 /**
  * This method initializes txtName
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtName()
 {
  if (txtName == null)
  {
   txtName = new JTextField();
   txtName.setBounds(new Rectangle(80, 50, 161, 21));
  }
  return txtName;
 }

 /**
  * This method initializes txtEmail
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtEmail()
 {
  if (txtEmail == null)
  {
   txtEmail = new JTextField();
   txtEmail.setBounds(new Rectangle(80, 80, 161, 21));
  }
  return txtEmail;
 }

 /**
  * This method initializes txtPwd
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtPwd()
 {
  if (txtPwd == null)
  {
   txtPwd = new JTextField();
   txtPwd.setBounds(new Rectangle(100, 110, 141, 21));
  }
  return txtPwd;
 }

 /**
  * This method initializes btnAdd
  *  
  * @return javax.swing.JButton
  */
 private JButton getBtnAdd()
 {
  if (btnAdd == null)
  {
   btnAdd = new JButton();
   btnAdd.setBounds(new Rectangle(150, 140, 91, 21));
   btnAdd.setText("추가");
   btnAdd.addActionListener(new java.awt.event.ActionListener()
   {
    public void actionPerformed(java.awt.event.ActionEvent e)
    {
     // TODO Auto-generated Event stub actionPerformed()
     //동작빈의 모델개체를 생성하고 멤버함수를 호출하되
     //텍스트박스의 값을 문자열로 전달.
     //MVC1 모델.
     //장점 :
     Adminpro adm = new Adminpro();
     AdminBean admbean = new AdminBean();
     String  id=txtID.getText();
     String  name=txtName.getText();
     String  email=txtEmail.getText();
     String  pwd=txtPwd.getText();
     
     admbean.setId(id);
     admbean.setName(name);
     admbean.setPwd(pwd);
     admbean.setEmail(email);
     
     int ab = adm.write(admbean);
     if(ab>0)
     {
      txtID.setText("");
      txtName.setText("");
      txtEmail.setText("");
      txtPwd.setText("");
     }
     
     JOptionPane.showConfirmDialog(null, "수행결과 : "+ab);

    }
   });
  }
  return btnAdd;
 }

}




**********    Adminpro.java      ********
package ch22;

import java.sql.*;

import javax.swing.JOptionPane;


public class Adminpro
{
 //동작 모듈 관련..  2가지 개선상황.
 //1.개선 : 매갠변수가 늘어날시 다 입력해줘야함. -> 데이타빈으로 교체.
 //데이터빈 모델형태 -> getter, setter 사용.
 //2개선 : sql이용시 conn부분 중복, 계승이용해서 풀어주면 됨.
 //public int write(String id, String name, String email, String pwd)
 public int write(AdminBean bean)
 {
  PreparedStatement pstmt = null;
  Connection conn = null;
  int rows=0;
  try
  {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   conn = DriverManager.getConnection
   (
    "jdbc:oracle:thin:@localhost:1521:ORCL","jsp","jsp"
   );
   
   String sql = "insert into admin(id,name,pwd,email) values (?,?,?,?)";
   pstmt=conn.prepareStatement(sql);
   pstmt.setString(1, bean.getId());
   pstmt.setString(2, bean.getName());
   pstmt.setString(3, bean.getPwd());
   pstmt.setString(4, bean.getEmail());
   
   rows=pstmt.executeUpdate();
  }
  catch (ClassNotFoundException e1)
  {
   // TODO 자동 생성된 catch 블록
   e1.printStackTrace();
  }
  catch (SQLException e1)
  {
   // TODO 자동 생성된 catch 블록
   e1.printStackTrace();
  }
  finally
  {
   try
   {
    pstmt.close();
    conn.close();
   }
   catch (SQLException e1)
   {
    // TODO 자동 생성된 catch 블록
    e1.printStackTrace();
   }
   
  }
  return rows;
 
 }
}

Posted by 말없제이
,

package ch22;

import java.awt.BorderLayout;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.sql.*;

public class Ch2204 extends JFrame
{
 //가장쉬운 이벤트.
 //무명클래스 사용.
 //폼에게 전개..
 //Winform 솔루션 -> 웹으로 개발 X...(재사용 가능성 거의 없음)
 //초보자에게 만들기 쉬우나, 재활용 거의 불가능.
 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JLabel jLabel = null;

 private JTextField txtID = null;

 private JLabel jLabel1 = null;

 private JTextField txtName = null;

 private JTextField txtEmail = null;

 private JTextField txtPwd = null;

 private JLabel jLabel2 = null;

 private JLabel jLabel21 = null;

 private JButton btnAdd = null;

 /**
  * This is the default constructor
  */
 public Ch2204()
 {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane()
 {
  if (jContentPane == null)
  {
   jLabel21 = new JLabel();
   jLabel21.setBounds(new Rectangle(30, 110, 61, 21));
   jLabel21.setText("비밀번호");
   jLabel2 = new JLabel();
   jLabel2.setBounds(new Rectangle(30, 80, 41, 21));
   jLabel2.setText("이메일");
   jLabel1 = new JLabel();
   jLabel1.setBounds(new Rectangle(30, 50, 41, 21));
   jLabel1.setText("이름");
   jLabel = new JLabel();
   jLabel.setBounds(new Rectangle(29, 19, 42, 22));
   jLabel.setText("ID");
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.add(jLabel, null);
   jContentPane.add(getTxtID(), null);
   jContentPane.add(jLabel1, null);
   jContentPane.add(getTxtName(), null);
   jContentPane.add(jLabel2, null);
   jContentPane.add(getTxtEmail(), null);
   jContentPane.add(jLabel21, null);
   jContentPane.add(getTxtPwd(), null);
   jContentPane.add(getBtnAdd(), null);
  }
  return jContentPane;
 }

 /**
  * This method initializes txtID
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtID()
 {
  if (txtID == null)
  {
   txtID = new JTextField();
   txtID.setBounds(new Rectangle(80, 20, 161, 22));
  }
  return txtID;
 }

 /**
  * This method initializes txtName
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtName()
 {
  if (txtName == null)
  {
   txtName = new JTextField();
   txtName.setBounds(new Rectangle(80, 50, 161, 21));
  }
  return txtName;
 }

 /**
  * This method initializes txtEmail
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtEmail()
 {
  if (txtEmail == null)
  {
   txtEmail = new JTextField();
   txtEmail.setBounds(new Rectangle(80, 80, 161, 21));
  }
  return txtEmail;
 }

 /**
  * This method initializes txtPwd
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTxtPwd()
 {
  if (txtPwd == null)
  {
   txtPwd = new JTextField();
   txtPwd.setBounds(new Rectangle(100, 110, 141, 21));
  }
  return txtPwd;
 }

 /**
  * This method initializes btnAdd
  *  
  * @return javax.swing.JButton
  */
 private JButton getBtnAdd()
 {
  if (btnAdd == null)
  {
   btnAdd = new JButton();
   btnAdd.setBounds(new Rectangle(150, 140, 91, 21));
   btnAdd.setText("추가");
   btnAdd.addActionListener(new java.awt.event.ActionListener()
   {
    public void actionPerformed(java.awt.event.ActionEvent e)
    {
     // TODO Auto-generated Event stub actionPerformed()
     
     PreparedStatement pstmt = null;
     Connection conn = null;
     try
     {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      conn = DriverManager.getConnection
      (
       "jdbc:oracle:thin:@localhost:1521:ORCL","jsp","jsp"
      );
     
      String sql = "insert into admin(id,name,pwd,email) values (?,?,?,?)";
      pstmt=conn.prepareStatement(sql);
      pstmt.setString(1, txtID.getText());
      pstmt.setString(2, txtName.getText());
      pstmt.setString(3, txtPwd.getText());
      pstmt.setString(4, txtEmail.getText());
     
      int rows=pstmt.executeUpdate();
      if(rows>0)
      {
      txtID.setText("");
      txtName.setText("");
      txtPwd.setText("");
      txtEmail.setText("");
      }
      JOptionPane.showConfirmDialog( null, rows+"행이 추가되었습니다.");      
     }
     catch (ClassNotFoundException e1)
     {
      // TODO 자동 생성된 catch 블록
      e1.printStackTrace();
     }
     catch (SQLException e1)
     {
      // TODO 자동 생성된 catch 블록
      e1.printStackTrace();
     }
     finally
     {
      try
      {
       pstmt.close();
       conn.close();
      }
      catch (SQLException e1)
      {
       // TODO 자동 생성된 catch 블록
       e1.printStackTrace();
      }
     
     }
    }
   });
  }
  return btnAdd;
 }

}

Posted by 말없제이
,

package ch22;

import java.sql.*;

import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ResultTreeType;

public class Ch2203
{
 public static void main(String[] args)
 {
  Connection conn = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String id = "admin2";
  /*
   * select문을 사용할 경우 ResultSet개체를 두어야 하며,
   * 사용하는 메서드는 executeQuery()를 사용한다.
   */
  try
  {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   String oUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
   conn = DriverManager.getConnection(oUrl, "jsp", "jsp");
   oUrl="";
   //String sql = "select * from admin";
   String sql = "select id as i, name as na, email, pwd from admin where id=?";
   pstmt=conn.prepareStatement(sql);
   pstmt.setString(1, id);
   
   //select문을 사요6ㅇ할 경우 executeQuery()를 사용하며
   //반드시 ResultSet 개체로 반환받아야 한다.
   rs = pstmt.executeQuery();
   //처음 레코드로 이동해야 컬럼을 ㅇ릭어들일수 있다.
   //re.next()는 다음요소로 이동할수 있으면 참을 반환하고
   //이동할수 없으면 거짓을 반환한다.
   
   while(rs.next())
   {
    //rs.getString("컬럼명")의 경우
    //컬럼의 값이 문자열일 경우 문자열로
    //읽어들여 반환한다.
    /*String id=rs.getString("id");
    String name=rs.getString("name");*/
    id=rs.getString("i");
    String name=rs.getString("na");
    String email=rs.getString("email");
    String pwd=rs.getString("pwd");
   
    /*System.out.println("id : "+id);
    System.out.println("name : "+name);*/
    System.out.println("i : "+id);
    System.out.println("na : "+name);
    System.out.println("email : "+email);
    System.out.println("pwd : "+pwd);
   }
   
   sql="select count(*) from admin";
   pstmt=conn.prepareStatement(sql);
   rs=pstmt.executeQuery();
   rs.next();
   //위의 SQL처럼 컬럼이름이 없는 경우에는 컬럼번호로 지정가능
   //ASP에서는 인덱스 0, JSP에서는 1.
   int count = rs.getInt(1);
   System.out.println("총갯수 : "+count);
  }
  catch (ClassNotFoundException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  catch (SQLException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  finally
  {
   try
   {
    rs.close();
    pstmt.close();
    conn.close();
   }
   catch (SQLException e)
   {
    // TODO 자동 생성된 catch 블록
    e.printStackTrace();
   }
   
  }
 
 }
}

Posted by 말없제이
,

package ch22;

import java.sql.*;

public class Ch2202
{
 public static void main(String[] args)
 {
  //CreateStatement와 PreparedStatement
  //두가지 방식중 실제로 속도가 빠른쪽 및 자원 재사용이
  //가능한쪽은 PreparedStatement이다
  //
  //1) select문이 아닌 SQL을 실행하는 방식
  //-->ResultSet이 필요없다.
  //-->executeUpdate()메서드를 사용
  //
  Connection conn = null;
  PreparedStatement pstmt=null;
  //1.JDBC드라이버를 읽어들인다.
  try
  {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   //2. Connection개체를 얻어온다.
   String oUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
   conn = DriverManager.getConnection(oUrl, "jsp", "jsp");
   oUrl ="";

   String id="admin";
   String name="name";
   String pwd="pwd";
   String email="email";
   
   //3. 실행할 SQL문을 정의
   /*String sql = "insert into admin(id, name, pwd, email) values ("+
   "?,?,?,?)";*/
   String sql = String.format("insert into admin(id, name, pwd, email) values "
     +"('%s','%s','%s','%s')",id, name, pwd, email);
   
   //4. PreparedStatement에 실행할 SQL을 등록한다.
   pstmt = conn.prepareStatement(sql);
   
  /* //첫번째 물음표의 영역에 문자열 "admin"을 대입
   pstmt.setString(1, "admin");
   pstmt.setString(2, "관리자");
   pstmt.setString(3, "1111");
   pstmt.setString(4, "a@a.com");*/
   
   //5. SQL의 실행 : executeUpdate()는
   //SQL의 실행결과 영향받은 행의 수를 숫자를 반환.
   int rows = pstmt.executeUpdate();
   System.out.println(rows+"개행이 추가되었습니다.");
  }
  catch (ClassNotFoundException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  catch (SQLException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  finally
  {
   //SQL실행시 오류가 나든 안나든 실행되는 부분
   //사용된 자원을 반납
   try
   {
    pstmt.close();
    conn.close();
   }
   catch (SQLException e)
   {
    // TODO 자동 생성된 catch 블록
    e.printStackTrace();
   }
  }
 }
}

Posted by 말없제이
,

JDBC연동..

DevTool/Java 2009. 6. 29. 18:02

package ch22;

//JDBC연동시 필요한 패키지
import java.sql.*;
import java.util.Map;
import java.util.Properties;

public class Ch2201
{
 public static void main(String[] args) throws ClassNotFoundException, SQLException
 {
  //데스크탑 프로그램 사용시 연동부분..  jps에서 폼이 바뀜.
  //퍼시턴스 계층 : Java, JSP, EJB 각각 사용할때의 패턴이 달라짐.
  Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
 
  Statement stmt = conn.createStatement();
 
  String sql = "select * from emp";
  ResultSet rs = stmt.executeQuery(sql);
 
  while(rs.next())
  {
   String empno=rs.getString("empno");
   String ename=rs.getString("ename");
   System.out.println("사원번호 : "+empno);
   System.out.println("사원이름 : "+ename);
  }
 
 }
 
 
}

Posted by 말없제이
,
퍼시턴스 계층 : Java, JSP, EJB 각각 사용할때의 패턴이 달라짐.
Posted by 말없제이
,

package ch19;

import java.io.*;

public class Ch1910
{
 public static void main(String[] args) throws IOException
 {
  //BufferedReader는 입력스트림중 Reader클래스의
  //하위클래스개체를 생성자에 지정할 수 있다.
  //콘솔일경우.  
  //BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  //파일일경우
  BufferedReader in = new BufferedReader(new FileReader
    (
     "D:\\study\\java\\Project\\sample\\src\\ch19\\Ch1906.java"
    )
  );
 
  StringBuffer sb = new StringBuffer();
  String line="";
  //스트링의 경우 null이 스트링의 개행으로 간주.
  while((line=in.readLine())!=null)
  {
   sb.append(line+"\n");
  }
  System.out.println(sb);
  in.close();
 
//  콘솔일경우.  
  //BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
  //파일일경우
  BufferedWriter out = new BufferedWriter(new FileWriter
    (
     "D:\\study\\java\\Project\\sample\\src\\ch19\\Output.java"
    )
  );
  out.write(sb.toString());
  out.close();
 
 }
}

Posted by 말없제이
,