2014-09-26 3 views
0

Java 응용 프로그램에서 Microsoft SQL Server 데이터베이스와 대화하려고합니다.Java JDBC -> SQL Server

  • 일반적인 Maven 스타일 Java 라이브러리 저장소에서 호스팅되지 않으므로 Microsoft 웹 사이트에서 sqljdbc_4.0.2206.100_enu.tar.gz를 다운로드했습니다.
  • 로컬 Maven 저장소에 수동으로 설치합니다.
  • 다음과 같은 간단한 간단한 테스트 코드를 사용합니다.
  • Java 기반 SQL 쿼리 도구 인 SQLWorkbenchJ에서 데이터베이스에 액세스하여 이러한 SQL 명령에 대한 즉각적인 응답을 얻을 수 있습니다.
  • 서버는 Windows 7의 SQL Server 2005입니다.
  • 클라이언트는 Java 7입니다. 차이점없이 Java 8도 시도했습니다. 그것은 산발적으로 작동하지만, 일반적으로 테이블을 생성 명령에 달려

    public static void superSimpleJdbcTest(String jdbcUrl, String user, String password) throws SQLException { 
    
         try (Connection dbConnection = DriverManager.getConnection(jdbcUrl, user, password)) { 
          System.out.println("opened connection"); 
    
          try (Statement statement = dbConnection.createStatement()) { 
           System.out.println("created statement"); 
    
           System.out.println("executing create table command..."); 
           statement.execute("create table something (id int primary key, name varchar(100))"); 
           System.out.println("completed create table command"); 
    
           System.out.println("executing insert command..."); 
           statement.executeUpdate("insert into something (id, name) values (1, 'Brian')"); 
           System.out.println("insert command completed"); 
          } 
         } 
        } 
    

. 내가 주석을 달면, 그것은 insert 명령에 걸려있다. 나는 틀린 것을 상상할 수 없다.

+0

이 인스턴스에서 "정지"의 정의는 무엇입니까? –

+0

몇 분 기다렸다가 statement.execute 또는 statement.executeUpdate 명령이 반환되지 않습니다. 이것들은 사소한 명령입니다. 다른 데이터베이스 도구로 동일한 명령을 실행하면 서버가 즉각적으로 응답합니다. – clay

+0

* 대개 * 괜찮습니다. 그러나이 드라이버/버전은 원래 Java 5/6 용으로 작성되었으므로 7 또는 8을 사용하려고합니다. http://www.microsoft.com/en-us/download/details.aspx?id = 11774 – curtisk

답변

0

SQLWorkbenchJ 응용 프로그램이 실행 중일 때 간단한 Java 테스트 응용 프로그램이 연결을 열었고 오류없이 모든 SQL 명령에 영원히 멈추었습니다.

SQLWorkbenchJ 응용 프로그램을 종료하자마자 내 간단한 Java 테스트 응용 프로그램이 예상대로 완벽하게 실행되었습니다. 그것은 정말로 이상했다. 그리고 나는 결국 대답에 비틀 거렸다.

SQL 콘솔로 RazorSQL을 사용하도록 전환했는데 이런 문제가없는 것으로 보입니다.

0

JTDS driver과 Microsoft 드라이버 (JDBC4)를 성공적으로 사용했습니다. 나는 주로 SQuirreL을 사용하여 드라이버를 테스트하기 때문에 SQLWorkbenchJ을 시도하지 않았습니다.

+2

이 링크가 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [리뷰에서] (리뷰/저품절 포스트/11194392) –

+0

좋은 조언. 감사! –