먼저 다음과 같은 설치가 되어 있습니다. 버젼은 현재 제가 사용하는 것입니다.
개발용이라 local에 모두 설치했습니다.

1. JDK 설치 (1.6.0_13)
2. Tomcat 설치 (6.0.20)
3. Eclipse 설치 (Galileo)
4. Flex 설치 (3.3)
5. BlazeDS 설치 (3.2.0.3978)

지돌스타님의 블로그에 방문해서 5번까지 설치합니다.


6. MSSQL JDBC Driver : sqljdbc (2.0.1803.100)
간단하게는 sqljdbc4.jar를 tomcat home 밑에 lib 디렉토리에 복사하면 됩니다.

이제 JNDI 셋팅을 합니다. 

다음과 같이 하면 MSSQL과 연결이 됩니다.

import java.sql.Connection;
import java.sql.*;


  ArrayList<Member> al = new ArrayList<Member>();
  try {
      // Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); sqljdbc4부터는 안써도 된다네요.
  
      String connectionUrl = "jdbc:sqlserver://192.168.0.10:1433;" +
           "databaseName=ABCD;user=username;password=password;";
      Connection con = DriverManager.getConnection(connectionUrl);
   
      String SQL = "SELECT * FROM tablename where lastname='" + name + "'";
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery(SQL);

      while (rs.next()) {
          al.add(new Member("abcd",30,"test1"));
          al.add(new Member("efgh",31,"test2"));
          al.add(new Member(rs.getString("emp"),1,rs.getString("lastname")));
      }
      rs.close();
      stmt.close();
      con.close();
      return al;


하지만 Tomcat의 DB Pooling 기능을 이용하려면 JNDI를 이용해야 한다고 합니다.

import를 먼저 합니다. 

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

 

 ArrayList<Member> al = new ArrayList<Member>();
  try {
       Context initCtx = new InitialContext();
      Context envCtx = (Context) initCtx.lookup("java:comp/env");
      DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB");

      Connection con = ds.getConnection();
   
      String SQL = "SELECT * FROM tablename where lastname='" + name + "'";
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery(SQL);

      while (rs.next()) {
          al.add(new Member("abcd",30,"test1"));
          al.add(new Member("efgh",31,"test2"));
          al.add(new Member(rs.getString("emp"),1,rs.getString("lastname")));
      }
      rs.close();
      stmt.close();
      con.close();
      return al;



소스를 위처럼 바꾸고
Eclipse에서 Project Explorer에 보면 Servers가 있는데 여기에 context.xml과 server.xml를 수정합니다. 기존에 있는 것은 두고 ResourceLink와 Resource만 추가하면 됩니다.

[context.xml]

<Context>
   ...
    <ResourceLink name="jdbc/EmployeeDB" global="jdbc/EmployeeDB" type="javax.sql.DataSource"/>
</Context>


[server.xml]

  <GlobalNamingResources>
    .....
      <Resource name="jdbc/EmployeeDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="username"
            password="password"
            driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
            url="jdbc:sqlserver://192.168.0.10:1433;DatabaseName=ABCD"
            maxActive="8"
            maxIdle="4"/>
  </GlobalNamingResources>

 

+ Recent posts